新しいImmutableJSオブジェクトが作成されるたびに関数をトリガーしたいと思います。 Reactアプリケーションの状態としてImmutableJSオブジェクトを使用したいと思い、定型コードを減らしたいと思います。ここでImmutableJSの変更をリッスンしていますか?
は、私が今持っているものの一部です:
function addTodo(text) {
let state = store.getState(); // Gets ImmutableJS object.
state.get('todos').push(text); // Store listens to change and replaces the current state with the newly created state. Store automatically triggers rerender.
}
可能これです:
function addTodo(text) {
let state = store.getState(); // Gets ImmutableJS object.
let todos = state.get('todos');
let newState = state.set('todos', todos.push('text'));
store.update(newState); // Triggers rerender.
}
ここで私はそれのようになりたいことは?
addTodo
をwithMutations
にまとめましたが、withMutations
では浅い変異のみが許されています。
可変オブジェクトを使用したくないという不変な点はありませんか?ボイラープレートコードを削減したい場合は、より高次の関数を追加するのはどうですか? – David
'shouldUpdateComponent'では不変であることを望みます。この場合、上位関数はどのように役立ちますか?あなたは引数として 'addTodo'に状態を渡して新しい状態を返しますか?一つの関数で状態を何度も更新することができ、 'state.set'を何度も呼び出さなければなりません。 –
reactjsのアプリケーション状態を処理するためにhttps://github.com/reactjs/reduxを見て、より速い 'shouldUpdateComponent'のために不変オブジェクトとして状態を保存してください。私はこれですでにいくつかのプロジェクトを行っていました。 Reduxは、状態の変更に関するコンポーネントへの通知を処理します。 –