tengo un problema, configuré mi useContext con valores useState en el proveedor, pero cuando los importo e intento cambiar el valor, ¡cambia localmente y no globalmente!
Iniciar sesión.js
import { UserContext } from './context/UserContext'; const loginD = (setStatue , username , password, user , setUser) => { axios.post("http://localhost:5050/login", { username : username, password : password }).then(response =>{ if(response.data.statue) { setStatue(response.data.statue); } if(response.data.message) { setUser({ ...user, _id : response.data.message[0].id, username : response.data.message[0].username, password : response.data.message[0].password, name : response.data.message[0].name }) console.log(user);//{id : "the id", username : "username" , password : "password"} localStorage.setItem("jwt", "logged in"); setStatue("Succesfully Logged in"); } }) }Inicio.js
const Home = () => { const [user , setUser] = useContext(UserContext); return ( <div> {console.log(user)} //{id:"",username:"",password:""} <p>Hello {user.username}</p> </div> ) }UserContext.js
import React , {useState ,createContext} from "react"; export const UserContext = createContext({}); export const UserProvider = (props) => { const [user , setUser] = useState( { _id : "", username : "", password : "", name : "" } ); return( <UserContext.Provider value = {[user, setUser]}> {props.children} </UserContext.Provider> ); }; en realidad me da los valores predeterminados de la variable useState Puede alguien explicarme qué es lo que realmente está mal? Gracias
Sugiero volver a leer la documentación de useContext . Si bien no está claro a partir de su pregunta, tengo la sensación de que se está perdiendo UserContext.Provider y no está usando los contextos correctamente. También menciona que está usando useState pero no nos muestra dónde.