Tengo un componente como tal:
import classNames from "classnames"; const Button = (props) => { const { className, children, ...rest } = props; const [internalProps, setInternalProps] = useState(rest); const [classes, setClasses] = useState(""); const validateProps = () => { const tmp: Props = Object.assign(rest, {}); const classes = [ "btn", className, { "btn-block": block }, { "btn-sm": size === "sm" }, { "btn-lg": size === "lg" }, ]; setClasses(classNames(classes)); setInternalProps(tmp); }; useEffect(validateProps, [props]); return ( <button className={classes} {...internalProps}> {children} </button> ); }; La propiedad className se elimina de internalProps porque, por alguna razón, cuando se incluye en ella, las clases no se aplican a veces cuando se carga la página. No tengo idea de por qué sucede esto, AFAIK className se trata como otro accesorio en React. Sin embargo, todavía soy nuevo en React y Next.JS, por lo que es posible que me esté perdiendo algo básico aquí. ¿Alguien ha experimentado algo como ésto?
Está configurando internalProps para que sea igual que rest , y rest no incluye className .
Esta línea:
const { className, children, ...rest } = props medio:
De los props , tome className y children , y coloque todas las propiedades restantes (sin incluir className y children ) en rest .