reactjs - hur man skickar stil i div med Typescript i React
det här är min kod jag vill bara skapa en anpassad komponent i React med TypeScript, som om jag vill skicka höjd, bredd, border radius och stil som extra parametrar, till exempel om jag vill ha fler CSS-egenskaper då skickar jag style={{display:flex}}, men jag kan inte lägga till detta med TypeScript, jag skrev det framgångsrikt i JS det fungerar men jag är inte bekant med TypeScript
mitt gränssnitt
interface BoxProps {
heights: React.CSSProperties;
styles?: React.CSSProperties;
className?: String;
borderRadius?: React.CSSProperties
children?: React.ReactElement<any>
}
const Box = ({ id, heights, styles, className, children }: BoxProps) => {
const Nstyle = { ...styles,height: { heights } }
return (
<div
{...id}
style={Nstyle}
className={CN} >
{children}
</div >
);
}
vänligen hjälp stil visar detta fel med TypeScript Den förväntade typen kommer från egenskapen 'style' som är deklarerad här på typ'DetailedHTMLProps, HTMLDivElement>'`
Svar #1
Prop'en heights behöver vara string | number. Prop'en className använde ett stort S för String istället för string. className={CN} borde vara className={className} eftersom variabeln CN inte finns.
interface BoxProps {
heights: string | number;
styles?: React.CSSProperties;
className?: string;
borderRadius?: React.CSSProperties
children?: React.ReactElement<any>
}
const Box = ({ heights, styles, className, children }: BoxProps) => {
const Nstyle: React.CSSProperties = { ...styles, height: heights }
return (
<div
style={Nstyle}
className={className}
>
{children}
</div >
);
}
