Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

285
Visualizações
UseSelector en el retorno nativo de reacción indefinido pero la variable en redux se actualiza

Intenté usar UseSelector para obtener datos en un redux, pero siempre se devolvió sin definir, pero cuando intento iniciar sesión en console.log, la variable que quería obtener en redux se actualiza, pero cuando intento la consola, registro el useSelector, se devuelve indefinido

código redux:

 export const EXCHAHNGETOSECOND = 'EXCHANGETOSECOND' export const exchangetosecwork = (hour,minute,second) =>({ type:EXCHAHNGETOSECOND, payloadhourwork : hour, payloadminutework : minute, payloadsecondwork : second }) let initialState ={ resultWorkinSecond : 0 } export const mainReducer = (state=initialState, action) =>{ switch (action.type) { case EXCHAHNGETOSECOND: const hourTosecond = action.payloadhourwork * 3600 const minuteTosecond = action.payloadminutework * 60 const res = hourTosecond+minuteTosecond+action.payloadsecondwork state.resultWorkinSecond = res console.log(state.resultWorkinSecond); return state.resultWorkinSecond default: return state } } export default mainReducer

tienda redux:

 import { createStore } from "redux"; import mainReducer from "./redux"; import AsyncStorage from '@react-native-async-storage/async-storage'; import { persistStore, persistReducer } from 'redux-persist' const persistConfig={ key:'root', storage:AsyncStorage, }; const persistedReducer = persistReducer(persistConfig,mainReducer) export default() => { let store = createStore(persistedReducer) let persistor = persistStore(store) return{ store, persistor } }

Prueba de registro de myConsole:

 const resWorkinSec = useSelector((state)=>state.resultWorkinSecond) <Pressable onPress={()=>{ dispatch(exchangetosecwork(hour,minute,second)) console.log(resWorkinSec) }}>

[resultado de registro de consola 1

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Su reductor tiene múltiples errores:

  • hace una asignación, cambiando de estado. Esto no está permitido en los reductores de Redux heredados, pero solo en los Redux modernos que usan createSlice
  • return state.resultWorkinSecond incluso cambia la estructura de estado completa.

El código heredado correcto de Redux se vería así:

 export const mainReducer = (state=initialState, action) =>{ switch (action.type) { case EXCHAHNGETOSECOND: const hourTosecond = action.payloadhourwork * 3600 const minuteTosecond = action.payloadminutework * 60 const res = hourTosecond+minuteTosecond+action.payloadsecondwork return { ...state, resultWorkinSecond: res } default: return state } }

Dicho todo esto, este es un estilo antiguo de Redux que ya no recomendamos desde 2019. Es más complicado y propenso a errores. Y aproximadamente 4 veces el código Redux moderno sería. Modern Redux no usa switch..case reducers, ACTION_TYPES, lógica reductora inmutable (como necesitabas hacer aquí), createStore y similares.

Recomiendo encarecidamente que dejes lo que estás haciendo por un momento y sigas el tutorial oficial de Redux .

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda