我只是想知道我是否使用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;
现在它仍然发送0,即初始状态。
当我添加componentWillReceiveProps()时,它仍然使用旧值导航。 我认为在完成进程和setState之前,它已经导航了。
答案 0 :(得分:0)
您需要订阅()到您的商店,然后onStoreUpdate()您需要getState并将其分配给您的组件this.state或this.props
一旦获得最新状态,您可以使用最新数据发送/ setState。