es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo convertir correctamente a redux toolkit un patrón donde la misma acción se despacha/verifica en varios lugares.

Estoy migrando lentamente mi aplicación de plain redux a redux-toolkit.
Uno de los patrones que he notado es el siguiente:

  1. Un thunk asíncrono que obtiene información y despacha acciones de inicio/fin/error
  2. Un middleware que reacciona a la acción de finalización
  3. Otras funciones que también despachan la acción de finalización

Anteriormente convertí otros thunks en un simple thunk de acción createAsyncThunk y reaccioné a los estados generados del thunk fulfilled | pending | rejected. Sin embargo, en esta situación necesito poder despachar el estado fulfilled desde varios lugares.
No creo que sea idiomático (ni una buena idea) si despacho manualmente el tipo fulfilled haciendo dispatch({ type: myThunk.fulfilled, payload}).

Mi suposición es que debo crear otro creador de acción sincrónico normal y despacharlo desde el thunk, desde los otros varios lugares y usar ese para reaccionar en la tienda y en el middleware y ignorar completamente el estado thunk.fulfilled.
¿Es correcta mi suposición?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Como experto en IT especializado en Redux y Redux Toolkit, puedo aconsejarte que tu suposición es correcta. No es una buena idea despachar manualmente el tipo fulfilled haciendo dispatch({ type: myThunk.fulfilled, payload}). En su lugar, deberías crear otro creador de acciones sincrónico normal y despacharlo desde el thunk y otros lugares donde quieras utilizarlo. Luego puedes utilizar esa acción para reaccionar a ella en el store y en el middleware, e ignorar el estado thunk.fulfilled. Esto hará tu código más legible y mantenible. Recuerda que uno de los principales objetivos de Redux Toolkit es simplificar y optimizar tu código de Redux, así que deberías tratar de utilizar las abstracciones integradas para manejar acciones asíncronas siempre que sea posible.

Comments are closed.