Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

151
Views
El contexto de reacción no se actualiza globalmente

este es mi contexto, pero no puedo actualizar sus valores globalmente. Cambia pero no globalmente, y si actualizo la página, por ejemplo, vuelve a los valores predeterminados. ¿Que estoy haciendo mal?

 import React, { useReducer } from 'react' const initialState = { user: 'magnus', isAuth: false }; const actions = { SET_USER: "SET_USER", SET_AUTH: "SET_AUTH" }; const reducer = (state,action) => { switch(action.type) { case actions.SET_USER: return { user: action.user }; case actions.SET_AUTH: return { isAuth: action.setAuth }; default: return state; } }; export const UserContext = React.createContext(); const Provider = ({children}) => { const [state, dispatch] = useReducer(reducer, initialState); const value = { user: state.user, isAuth: state.isAuth, setUser: (user) => { dispatch({ type: actions.SET_USER, user}); }, setAuth: (auth) => { dispatch({type: actions.SET_AUTH, auth}); } }; return ( <UserContext.Provider value={value}> {children} </UserContext.Provider> ); }; export default UserContext; export { Provider };

Estoy usando esto en el otro componente:

 const { user, isAuth, setUser } = useContext(UserContext); return( <div> <h3>{user}</h3> <h3>{isAuth ? 'ok' : 'not ok'}</h3> <button onClick={() => setUser('brutus')}>change</button> </div> )

Está actualizando el usuario pero solo en este componente, si recargo la página por ejemplo, sigue diciendo 'magnus' en lugar de 'brutus'.

Este es mi index.js:

 <Provider> <App /> </Provider>

Aplicación.js:

 <BrowserRouter> <Routes> <Route path="/" element={<Home />} /> <Route path="/dashboard" element={<Dashboard />} /> </Routes> </BrowserRouter>

¿Puede alguien por favor ayudarme?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

El problema es que exportas UserContext dos veces

 export const UserContext = React.createContext(); export default UserContext;

Así que solo mantén el primero e impórtalo en el componente:

 import { UserContext } from './UserContext'

Aquí está el ejemplo de trabajo

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!