¿Por qué el resultado de estos no es igual mientras son exactamente la misma matriz?
La matriz se transmite a un componente y es un estado de reacción.
const [vars, setVars] = useState([]); <Message index={vars.findIndex((entry) => entry.NAME === "message")} vars={vars}/>;Imprimo mi matriz usando esto dentro del componente Mensaje.
useEffect(() => { console.log(vars[index], vars[index].CONTENT); }, [index, vars]); El valor está bien en la parte vars[index] , pero si hago vars[index].CONTENT el contenido no es correcto. ¿Cuál es el significado de esto, estoy haciendo algo mal? Si necesitas cualquier otra información, no dudes en preguntarme.
Entonces, el siguiente código funciona para mí. Inicializo vars con un estado inventado similar al que se está imprimiendo.
import React, { useEffect, useState } from 'react'; const Message = ({vars, index}) => { useEffect(() => { console.log(vars[index], vars[index].CONTENT); }, [index, vars]); return( <div>{vars[index].CONTENT.text}</div> ) } export const App = () => { const [vars, setVars] = useState([ { NAME: 'error', CONTENT: { text: "error text", variant: "danger" } }, { NAME: 'message', CONTENT: { text: "message text", variant: "info" } }, ]); return( <Message index={vars.findIndex((entry) => entry.NAME === "message")} vars={vars}/> ); } export default App; Tal vez esta no sea la respuesta a su pregunta, pero si todavía tiene un problema, tal vez podría publicar el código donde está llamando a setVars , ahí es probablemente donde se origina el problema. 