我想在调用多个调度时提供一些帮助。我有以下代码,但调度调用是异步的。我不确定如何进行同步调度调用?以下是我的代码。
componentDidMount () {
this.props.getItem1()
this.props.getItem2()
this.props.getItem3()
}
const mapStateToProps = state => ({
item1Fetching: state.item1.fetching,
item1Error: state.item1.error,
item2Fetching: state.item2.fetching,
item2Error: state.item2.error,
item3Fetching: state.item3.fetching,
item3Error: state.item3.error,
})
const mapDispatchToProps = dispatch => ({
getItem1: () => {
dispatch(Item1Actions.item1Request())
},
getItem2: () => {
dispatch(Item2Actions.item2Request())
},
getItem3: () => {
dispatch(Item3Actions.item3Request())
},
})
export default connect(mapStateToProps, mapDispatchToProps)(LoadingScreen)
答案 0 :(得分:0)
作为一种解决方法,您可以创建单个操作来分派和执行该操作,您可以逐个调度三个项目获取方法。
在mapDispatchToProps
方法中,您可以执行以下操作
const mapDispatchToProps = dispatch => bindActionCreators(itemsAction, dispatch)
在你的actions.js中 你可以做以下...... ....
`export const itemsActions = () => {
return (dispatch, getState) => {
return item1Request().then((data) => {
dispatch(data);
return item2Request().then(data2 => {
dispatch(data2);
return item3Request().then(data3 => dispatch(data3))
})
})
}
}`
我希望这会对你有所帮助。 这样你就可以逐一制作它们