Creo que entiendo por qué la primera instancia de isActive que se pasa como argumento a la función de flecha está encapsulada entre corchetes, es decir, { isActive } , mientras que la segunda isActive no está encapsulada entre corchetes, pero me gustaría asegurarme de que entiendo correctamente .
¿Es el primer "isActive" que está encapsulado entre corchetes, es decir, ({ isActive }) un ejemplo de desestructuración de objetos? (Si no, ¿una función de flecha en JS no espera recibir el nombre de una variable, pero { isActive } no se evalúa como verdadero o falso ?)
¿Tengo razón en que este es un ejemplo de desestructuración de objetos?
Tu entendimiento es correcto. react-router v6 ha cambiado un poco la API de NavLink . Debe proporcionar el isActive envuelto en un objeto a diferencia de NavLink v5 .
export interface NavLinkProps extends Omit<LinkProps, "className" | "style" | "children"> { children: | React.ReactNode | ((props: { isActive: boolean }) => React.ReactNode); caseSensitive?: boolean; className?: string | ((props: { isActive: boolean }) => string | undefined); end?: boolean; style?: | React.CSSProperties | ((props: { isActive: boolean }) => React.CSSProperties); }