【发布时间】:2016-04-25 15:51:11
【问题描述】:
我有一个更新 Redux 中一些搜索条件的操作。我想根据本地标准立即从 API 中获取一些数据。问题是虽然搜索条件动作派发是同步的,但在搜索结果派发开始之前它不会完成。
在本例中,条件在 api 调用之前不会更新:
this.props.dispatch(updateLocalCriteria(someData));
this.props.dispatch(fetchApiResults(this.props.criteria))
我是否遗漏了一些明显的东西?我可以想到一些处理这个问题的方法,但是最好的方法是什么?我应该在搜索条件更新时设置一个标志,如果标志为真,则在componentDidUpdate() 中获取结果?或者我应该让updateLocalCriteria() 异步,以便我可以将fetchApiResults() 链接到承诺链中?
编辑
我想我找到了答案。我可以在fetchApiResults() 中获取当前状态。因此,我可以在调用 api 之前获取当前的搜索条件。
function fetchApiResults() {
return (dispatch, getState) => {
const state = getState();
// fetch data and dispatch...
【问题讨论】: