Yo estos estado gancho:
const [features, setFeatures] = useState([]) const [medicalProblem, setMedicalProblem] = useState([]) mi variable medicalProblem inicializará con la respuesta de una API:
useEffect(() => { getMedicalProblem() }, []); const initFeatures = (index) => { let mfeatures = medicalProblem[index].features //I got Cannot read properties of undefined (reading 'features') error mfeatures.sort(function (a, b) { return a.order - b.order; }); setFeatures(mfeatures) } const getMedicalProblem = () => { api .get("dental/generic/slideshow/medical-problem/") .then((res: any) => { const { count, results } = res setMedicalProblem(results) initFeatures(0) }) .catch((err) => { }); };pero tengo este error:
Cannot read properties of undefined (reading 'features')Hay un par de formas de lograr esto, pero la más fácil puede ser crear otro enlace useEffect que dependa de la matriz medicalProblems como se ve a continuación.
useEffect(() => { if (medicalProblems) { initFeatures(0) } }, [medicalProblems])Ese enlace adicional se asegurará de que sus problemas médicos estén completos antes de proceder a inicializar sus funciones. ¡Hazme saber si esto funciona!