Redux多个异步调度

时间:2017-02-27 18:23:06

标签: reactjs redux redux-thunk

我在我的网站上使用Redux,并且在加载页面时我想要进行两次调度。第二个调度等待第一个调度(进行ajax调用)完成,以便它可以使用第一个调度的数据。问题是现在第二个调度不等待第一个调度完成所以this.props.allData为空。我该怎么做呢?我已经尝试过使用redux-thunk并承诺也无济于事。

componentWillMount() {

    this.props.dispatch(fetchAllData())
    this.props.dispatch(fetchData(this.props.allData, this.props.params.id))

}

这会给我一个错误,说“无法读取属性”,然后是“未定义”

getAllData() {
  return (dispatch) => {
    return dispatch(fetchAllData()).then(()=> {
      dispatch(fetchData(this.props.allData, this.props.params.id))
    })
  }
}


componentWillMount() {
    this.props.dispatch(this.getAllData())
}

1 个答案:

答案 0 :(得分:0)

dispatch中有getAllData次来电过多。尝试这样的事情:

getAllData() {
  return (dispatch) => {
    return fetchAllData().then((resp)=> {
      dispatch(fetchData(resp.payload, this.props.params.id))
    })
  }
}