【发布时间】:2018-02-18 07:27:32
【问题描述】:
我有一个动作文件,它连续调用两个动作:
export const navigate = url => dispatch => {
dispatch(actions.navigateToUrl(url));
dispatch(actions.clearNavigateToUrl());
};
商店的更新在我的Components 之一中点击了连接功能:
export default connect(state => ({
url: state.navigate.url
})
})(withRouter(Navigate));
然后我有一个componentWillReceiveProps,每次更新state 时都应该点击它。
mapStateToProps 被连续命中 2 次,但我的 componentWillReceiveProps 只被命中第二次,就像有某种批处理一样。我以为setState 中只有批处理。
我可以在action 中的第二个dispatch 周围添加一个setTimeout 而无需等待时间,然后我两次都点击componentWillReceiveProps:
export const navigate = url => dispatch => {
dispatch(actions.navigateToUrl(url));
setTimeout(dispatch(actions.clearNavigateToUrl()));
};
但显然这不是我们想要的,我只是在测试是否是时间问题。
我该怎么做才能解决这个问题?
【问题讨论】:
标签: reactjs redux react-redux