2017-07-19 59 views
0

我只是想知道如果我調用派遣和發送道具使用REDX並導航到另一個組件在同一個函數中,我如何確保我得到最新的道具之前呈現組件?得到最新狀態之前調度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}) 
 
    } 
 
    } 
 
} 
 

 
...........

現在它仍然發送0,初始狀態。

當我添加componentWillReceiveProps()時,它仍然使用舊值導航。 我認爲在它完成過程和setState之前,它已經導航。

回答

0

您需要申請(),您的商店,然後onStoreUpdate(),你需要GETSTATE並分配給你的組件this.state或this.props

一旦你得到了最新的狀態,你可以派遣/ setState與最新的數據。