Hola, tengo un problema con mi aplicación de reacción, estoy usando useContext para analizar a mi usuario en un sitio de votación, pero tengo un pequeño problema, mi aplicación se está cargando doblemente, luego mi contexto se vuelve indefinido, puedo ver al usuario en el primer console.log pero no puedo acceder a él.
const { user, setUser } = useContext(UserContext) const [medarbejdere, setMedarbejdere] = useState({}) const userLogIn = document.getElementById('id').value; const user = medarbejdere?.filter(userid => userid.id === parseInt(userLogIn)).map(currentUser => console.log(currentUser)) setUser(user); navigate("/votingsite")```console.log es un retorno nulo, está asignando un valor de currentUser a indefinido y luego actualizando probablemente el estado del user a una matriz de valores indefinidos. No use Array.prototype.map para efectos secundarios como el registro de un valor en la consola.
const { user, setUser } = useContext(UserContext); const [medarbejdere, setMedarbejdere] = useState({}); const userLogIn = document.getElementById('id').value; const user = medarbejdere?.filter(userid => userid.id === parseInt(userLogIn)); // console log the entire `user` array console.log(user); // or use `Array.protype.forEach` to issue side-effect on each element user.forEach(currentUser => console.log(currentUser)); También puede estar viendo las llamadas setUser y navigate como efectos secundarios no intencionales porque están en el cuerpo del componente. Estos deben estar en una devolución de llamada o gancho useEffect .
useEffect(() => { setUser(user); navigate("/votingsite"); }, []);