2017-07-19 5 views
0

ディスパッチを呼び出してreduxを使用して小道具を送信し、同じ機能の別のコンポーネントに移動すると、私は不思議に思っていました。どうすれば最新の小道具をレンダリングするコンポーネント?今、それはまだ、初期状態を0を送信発送前に最新の状態を取得する

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

 
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}) 
 
    } 
 
    } 
 
} 
 

 
...........

コンポーネントWillReceiveProps()を追加すると、それでも古い値でナビゲートされます。 プロセスとsetStateを終了する前に、すでにナビゲートしていると思います。

答えて

0

は、あなたの店に()サブスクライブする必要があり、その後、onStoreUpdate()あなたはGETSTATEと

は、あなたができる最新の状態を持ってたらthis.stateまたはthis.propsあなたのコンポーネントにそれを割り当てる必要がありますdispatch/setStateを最新のデータで更新します。

関連する問題