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

308
Visualizações
Obtener devoluciones de llamada de redux-saga

Estoy activando una función en saga con Dispatch. ¿Puede Saga enviarme información dentro del componente después de que haya hecho todo su trabajo? En realidad, explicaré lo que quiero hacer con un ejemplo simple, no se rían, por favor, estoy seguro de que esto no funcionará.

 dispatch({ type: 'triggerApiCallInSaga' }).then(res => doSomething(res.payload));

Quiero hacer cambios en el componente como resultado de la consulta que he hecho. De hecho, quiero mantener esto con redux, pero me preocupa que mi estado se expanda. También me parece una tontería verificar a través de redux para cerrar el modal.

En resumen quiero recibir señal de saga y verla en componente. ¿Puedo hacer un oyente para ello? ¿O la saga tiene un método para esto? Aunque busqué, no pude encontrar los resultados correctos. devolución de llamada de redux-sagas (también conocido como sagas y setState) Encontré una pregunta similar a mi pregunta, pero aquí encontré una respuesta negativa que no entendí.

Gracias.

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

0

La respuesta que vinculó es correcta, la forma esperada para que una saga se comunique con el componente es mediante la actualización de la tienda redux. Agregar promesas/devoluciones de llamada es un antipatrón, porque cada acción puede ser manejada por sagas 0-n; por supuesto, es posible que sepa que en su caso es solo una saga, pero el marco no garantiza eso de ninguna manera y puede conducir a algunos problemas inesperados más adelante.

Dicho esto, aunque sea un antipatrón no significa que no puedas hacerlo.

La forma más fácil es agregar una devolución de llamada a la acción, por ejemplo

 // component const callback = data => console.log(data) dispatch({type: MY_ACTION, callback}) // saga yield takeEvery(MY_ACTION, function*(action) { action.callback({foo: 'bar'}); })

Si prefiere promesas, eso es algo que no se puede hacer fácilmente solo con la biblioteca de saga, pero hay paquetes que pueden agregar esta funcionalidad como: https://github.com/adobe/redux-saga-promise

La solución ideal para este problema sería ejecutar una saga sobre un useReducer , de modo que en lugar de agregar un estado específico del componente a la tienda redux, solo trabajaría con un estado del componente. Hay algunos intentos que intentan hacer esto, pero desafortunadamente, a Reaction aún le falta alguna funcionalidad que nos permita hacer esto de manera confiable sin introducir otros problemas.

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