Hoy en SorninHeadachePost tenemos un nuevo renderizado de React que no ocurre.
Intentaré explicarlo lo mejor que pueda y dar la máxima información (no lo dudes si crees que falta algo).
Y !
Tengo un componente React llamado Navigation que debería volver a renderizarse una vez que cambien los accesorios.
//[...] const [availableViews, setAvailableViews] = useState(props.availableViews) const [userViews, setUserViews] = useState(props.userViews) const [_, forceUpdate] = useReducer((x) => x + 1, 0); useEffect(() => { setAvailableViews(props.availableViews) }, [props.availableViews]) useEffect(() => { setUserViews(props.userViews) console.log("the log") forceUpdate() }, [props.userViews]) return ( <div className="navigation-root"> <div className="navigation-title"> <img src={dashboardSVG} alt="Dashboard"/> <span className="navigation-titleSpan">DASHBOARD</span> </div> <div className="navigation-tabContainer"> { props.dataInitialized && availableViews.length > 0 ? availableViews.map((d:ViewObject, key:any) => { if (d.viewName.startsWith("Default ")) { let views: ViewObject[] = [] for (let i = 0; i<userViews.length;i++) { //[...] En este fragmento de código que representa el componente Navigation de React, la propiedad userViews cambia en una acción del usuario, el registro ( the log ) se lanza en esta acción, por lo que la propiedad se actualiza.
Pero nada cambia....
Puede ser porque la lógica que usa el estado userViews está envuelta en una devolución de llamada .map . (Si es por esto, como se puede volver a renderizar)
Como puede ver, probé el truco del reductor para forzar la actualización. Nada cambia tampoco.
En este punto, estoy buscando una representación completa de este componente para que actualice todos los componentes secundarios.