在react-native中处理多个调度

时间:2018-02-12 07:13:31

标签: javascript react-native react-redux

我想在调用多个调度时提供一些帮助。我有以下代码,但调度调用是异步的。我不确定如何进行同步调度调用?以下是我的代码。

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)

1 个答案:

答案 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))
      })
    })
  }
}`

我希望这会对你有所帮助。 这样你就可以逐一制作它们