我在我的网站上使用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())
}
答案 0 :(得分:0)
dispatch
中有getAllData
次来电过多。尝试这样的事情:
getAllData() {
return (dispatch) => {
return fetchAllData().then((resp)=> {
dispatch(fetchData(resp.payload, this.props.params.id))
})
}
}