【发布时间】:2017-07-12 02:59:06
【问题描述】:
我正在构建一个 react&redux 应用程序,但遇到以下问题:在我的一个组件中,我想以编程方式导航到另一个页面,并显示一个模式。
我发现在两个操作中执行此操作在我的应用程序中效果不佳,因为状态被更新了两次(导致我的模态渲染两次,从而导致它消失)。
所以我尝试使用 redux-batched-actions 更新状态一次,通过调用具有两个函数(“push”和“openModal”类型的操作)的 batchActions。但由于某种原因,在 batchActions 中调用“push”不起作用。示例:
import { push } from 'react-router-redux';
import { batchActions } from 'redux-batched-actions';
myFunction: function() {
this.props.newPath("/mypath");
}
const mapDispatchToProps = (dispatch) => {
return {
newPath: (path) => dispatch(batchActions([push(path)])),
}
}
单独调度推送操作可以正常工作,如下所示:
newPath: (path) => dispatch(push(path))
而且,在 batchAction 中调度模态动作是可行的:
newPath: (path) => dispatch(batchActions([displayModal("title", "message"]))
因此,由于某种原因,batchActions 似乎无法识别“推送”操作,我不知道为什么。
谁能明白为什么batchActions 不能正确处理“推送”操作?
问候
【问题讨论】:
标签: reactjs react-redux react-router-redux redux-batched-actions