首页 文章

如何将onSubmit与不返回promise的操作一起使用?

提问于
浏览
1

从onSubmit [1]的文档中可以看出,为了充分利用redux-form(例如,更新带有错误详细信息的字段,重定向成功),应该返回一个promise .

如果使用redux-thunk或类似,并从动作创建者返回promises,这没关系 .

但是,我的应用程序中的异步操作不会返回promises - 它们使用中间件来处理API请求 . 就像redux docs [2]中的 callAPIMiddleware 函数一样 .

提交表单时,我想触发 SAVE 操作,让服务器执行此操作,并通过侦听由中间件自动触发的 SAVE_SUCCESSSAVE_ERROR 操作来处理响应 . 然后,我的表格将显示错误,成功后做一些事情等 .

有没有办法做到这一点,或者我只需要回复我的动作创作者的承诺?

[1] http://redux-form.com/6.0.5/docs/api/ReduxForm.md

[2] http://redux.js.org/docs/recipes/ReducingBoilerplate.html

1 回答

  • 0

    我面临同样的问题 . 我正在使用 Redux-Observable 来包含我在RxJS史诗中的所有副作用 . 这意味着我的动作创建者也不会返回任何承诺 .

    有一种解决方法,包括返回永远无法解决的空Promise . 这将使表单开始提交过程 . 完成后,您可以使用操作创建者来发送 stopSubmit 操作 . 最后一个操作允许您定义表单错误等 .

    但是,目前GitHub中有一个错误(https://github.com/erikras/redux-form/issues/2591) . 有一个拉取请求来修复此错误(https://github.com/erikras/redux-form/pull/2731) . 希望它很快就会被接受 .

相关问题