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

195
Visualizações
Cómo establecer dinámicamente la variable de estado inicial en redux

Estoy tratando de establecer el estado inicial de un estado redux basado en un parámetro de elemento de objeto directamente dentro del estado de la saga redux. Tiene que estar en este archivo (larga historia), así que decido ponerlo en este archivo. Entonces, mi primer pensamiento es escribir una función en el archivo redux para hacer el trabajo. Sin embargo, no estoy seguro de cómo acceder al estado que necesitaré desde otro archivo redux. Investigué y vi que puede usar la siguiente sintaxis para hacerlo en funciones de generador

 const state = yield select();

Así que probé esto en una función javascript de vainilla y, como se esperaba, no funcionó. ¿Hay alguna manera de que pueda hacer lo siguiente?

 const initialState = { currentAccountId: fetchAndReturnId(), currentName: '', }; function fetchAndReturnId() { const state = yield select(); const { accounts } = state.global.accounts; const charityAccount = accounts.find(acc => acc.type === 'charity'); return charityAccount.id; }

Solo me preguntaba si alguien más tenía alguna otra solución. ¡Gracias!

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

0

Puedes hacer una función para ello.

Aquí hay un ejemplo para ti:

 const initial = async () => { const id = await getId(); const name = await getName(); return { currentAccountId: id, currentName: name, }; };
about 4 years ago · Juan Pablo Isaza Relatório

0

A menos que haga cosas avanzadas como inyectar reductores, lo que está tratando de hacer realmente no tiene sentido para mí. El estado inicial se llama "inicial" porque se establece ANTES de cualquier otra cosa relacionada con redux, incluida la configuración de cualquier estado o la ejecución de cualquier saga. Por lo general, no puede configurar initalState en función de otro estado redux, porque no hay otro estado en ese momento.

Dicho esto, hay algunas otras cosas que puedes hacer. Si necesita establecer el mismo estado inicial para varios reductores, puede extraerlo a alguna constante y luego usarlo en ambos lugares.

 const INITIAL_DATA = 'foo'; const reducer1 = (state = INITIAL_DATA, action) => ... const reducer2 = (state = INITIAL_DATA, action) => ...

Si es algo dinámico, como datos obtenidos de BE, probablemente no sea un estado inicial, sino algo que establecería mediante acciones de reducción más adelante en el ciclo de vida de la aplicación.

 const reducer = (state = null, action) => { if (action.type === 'FETCHED_DATA') return action.data return state } function * saga() { const data = yield fetchData(); yield put({type: 'FETCHED_DATA', data}); }

O si tiene otra saga, que necesita leer el estado redux existente y luego enviarlo al reductor que maneja una parte diferente del estado redux, puede usar el efecto de select .

 function * saga() { const data = yield select(getDataFromStateSlice1); yield put({type: 'STORE_DATA_IN_STATE_SLICE_2', data}); }

De todos modos, dado que lo que está tratando de hacer no tiene sentido para mí, probablemente me esté perdiendo algo en su pregunta, siéntase libre de dar más detalles.

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