在派遣反应导航之前获得最新状态终极版

时间:2017-07-19 09:14:24

标签: react-native redux react-redux react-navigation

我只是想知道我是否使用redux调用调度并发送道具并导航到同一函数中的另一个组件,如何确保在呈现组件之前获取最新的道具?



................

onSubmit() {
  const { navigate } = this.props.navigation;
  this.props.correctAnswer(30);
  
  navigate('Another_Component',{score: this.props.totalScore});
}

return {

render(
  <View>
    <TouchableOpacity onPress={() => this.onSubmit()}>
      <Text>ADD 30</Text>
    </TouchableOpacity>
  </View>
);

}

const mapStateToProps = (state) => {
  return {
    totalScore: state.CurrentActScore
  }
}

const mapDispatchToProps = (dispatch) => {
  return {
    correctAnswer: (data) => {
      dispatch({ type: 'ADD_SCORE', value: data})
    }
  }
}

...........
&#13;
&#13;
&#13;

现在它仍然发送0,即初始状态。

当我添加componentWillReceiveProps()时,它仍然使用旧值导航。 我认为在完成进程和setState之前,它已经导航了。

1 个答案:

答案 0 :(得分:0)

您需要订阅()到您的商店,然后onStoreUpdate()您需要getState并将其分配给您的组件this.state或this.props

一旦获得最新状态,您可以使用最新数据发送/ setState。