2017-05-10 10 views
1

私の状態はかなり大規模なオブジェクトであるが、簡単のためだけに、このようなその何かふり:currUser内の情報のいずれかが最後の時間以降に変更された場合、私は私だけやりたいsaveUser(user)作用を有する状態が変更された場合にのみアクションを起動しますか?

{ 
    otherStuff: {}, 
    currUser: { 
     name: 'John', 
     age: 20, 
     location: 'NY' 
    } 
} 

saveUserが行われました。これを行う最善の方法は何ですか?その時点で状態を保存し、後で比較する必要がありますか?それとも良い方法がありますか?

+2

オブジェクトにハッシュコードを追加し、更新前にハッシュコードを比較してください –

+0

reduxを使用していますか? –

+0

はい私はreduxを使用して – inhwrbp

答えて

0

)(あなたはReduxのを使用していると仮定)

1本に続くいずれかにcurrUserのmapStateToPropsはログインクラスのコンポーネント(たとえば、 'ログイン')

2)を反応させるか、componentWillReceivePropsの下で、これを比較します。あなたのcurrUserオブジェクトが変更されているかどうかを確認します。

3)そうであれば、saveUserアクションをトリガーします。あなたの場合は

は以下のコメントごとに要求:

そのかなり単純な、では

1 T、ハンドラを提出し、所望の形態の構成要素

2)インポートアクション)mapstatetoprops内部bindActionCreatorsを実行します。 Redux/storeステートを使用してください。

3)this.props.YourActionをサブミットハンドラ内で使用してください。

これは機能しますか?

+0

問題は、私は 'componentWillReceiveProps'に移動することはできませんので、私はフォームの送信ハンドラの中でアクションを発生させる必要があります(私はそれがフォームに応答し、データは基本的に変更されています)。 – inhwrbp

+0

編集回答をチェックしてください –

関連する問題