2017-06-02 15 views
0

これは、React NavigationとReduxを含むReactネイティブプロジェクトです。 私は2つのシーンを持っています。最初のシーンにはListViewとボタンがあり、リストに新しい要素を追加します。このボタンは新しいシーンに移動して、最初のシーンのリストに表示される新しいレコードを作成します。React Navigation and Redux:goBack()は自分の小道具を更新しません

保存ボタンを押して最初のシーン(リストビュー)に戻るとき、mapStateToPropsは変更を反映しますが、他のライフサイクルメソッド(componentWillReceiveProps、shouldComponentUpdateなど)は呼び出されません。

ここで、両方のシーンはreduxからconnectを使用し、React NavigationのgoBack()メソッドを使用してシーン2からシーン1に戻ります。私はreduxが新しいものを表示するときにviewから "disconnected"を取得し、それをどのように戻すことができますか?ここでも、ListViewシーンのmapStateToPropsにデータが更新されて表示されていますが、マップされている小道具がないようです。

+0

私の状態が配列を使用しているように見えるので、同じものを操作するのではなく、自分のアクションで配列をコピーするときにいくつかの変更があります。 – fray88

答えて

0

redux状態の値が実際に変更されていない場合、小道具は更新されないようです。リスト配列を変更してペイロードに割り当てる前にリスト配列をコピーすると、問題が修正されたようです。

+0

ソリューションを共有できますか?私は同じ問題を抱えています。https://github.com/react-navigation/react-navigation/issues/3262#issuecomment-364599200 –

+1

@FrancisRodriguesその変更をキャッチするためには、新しい配列を割り当てる必要があるようです。同じアレイ上で動作しているときは、アレイメモリの位置を渡すだけです。実行する必要があるのは、配列のコピー機能を使用して新しい配列を作成することです。したがって、この新しい配列を割り当てるとき、reduxは値を変更のように検出します。 基本的に、 '要素の作成'ビューでは、リストの新しいコピーを作成し、その新しい要素に新しい要素を追加してレデューサーに送信します。 – fray88

関連する問題