Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

184
Vistas
por qué Fetch Api no publica un nuevo estado actualizado en useReducer

Estoy usando useReducer y context para actualizar mi estado en App.js y luego envié datos a la base de datos, pero no publica un nuevo estado actualizado y siempre envía un estado no actualizado.

Aplicación.js

 import AuthContext from './context'; import screenA from './screenA'; export default function App() { const initialLoginState = { email: null, }; const loginReducer = (prevState, action) => { switch (action.type) { case 'Email': return { ...prevState, email: action.Email, }; } }; const authContext = React.useMemo( () => ({ email: emailUser => { dispatch({type: 'Email', Email: emailUser}); }, signIn: async () => { try { fetch('FakeApi', { method: 'POST', headers: { Accept: 'application/json', 'Content-Type': 'application/json', }, body: JSON.stringify({ email: loginState.email, date: '2021-9-20', }), }); } catch (e) { console.log(e); } }, }), [], ); const [loginState, dispatch] = React.useReducer( loginReducer, initialLoginState, ); return ( <AuthContext.Provider value={authContext}> <screenA /> </AuthContext.Provider>

Contexto de cita en bloque

Creo un componente de contexto separado

contexto.js

 import React from 'react'; export const AuthContext = React.createContext();

Pantalla de cita en bloqueA

En la pantalla A, uso el correo electrónico e inicio de sesión para enviar datos a App.js y luego guardo estos datos en la base de datos.

pantallaA.js

 import {AuthContext} from './context'; function screenA() { const {email,signIn} = React.useContext(AuthContext); return ( <View style={{marginTop: 150}}> {/* Count: {state.count} */} <Button title="sent email" onPress={() => { email('example@gmail.com'); }} /> <Button title="signIn" onPress={() => { signIn(); }} /> </View> ); } export default screenA;
about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda