0
親コンポーネントがデータを取得するたびに子セレクタが更新されないようにするにはどうすればよいですか?子コンポーネントのセレクタがreduxでトリガされないようにする
セレクタの動作は意味があります。私はちょうどより簡単なアプローチのようなものを探しています。再選択を使用します(reduxを超えて使用できません)。
親コンポーネントがデータを取得するたびに子セレクタが更新されないようにするにはどうすればよいですか?子コンポーネントのセレクタがreduxでトリガされないようにする
セレクタの動作は意味があります。私はちょうどより簡単なアプローチのようなものを探しています。再選択を使用します(reduxを超えて使用できません)。
Reselectセレクタは、セレクタのparamsはが同じであれば、得られた小道具が同じオブジェクトであることを意味memoized、です。あなたが再選択を使用することができたとしても、あなたはAddy Osmani's articleから1のように、メモ化の方法を実装することにより、簡単にセレクタをメモ化することができます
function memoize(fn) {
return function() {
var args = Array.prototype.slice.call(arguments),
hash = "",
i = args.length;
currentArg = null;
while (i--) {
currentArg = args[i];
hash += (currentArg === Object(currentArg)) ?
JSON.stringify(currentArg) : currentArg;
fn.memoize || (fn.memoize = {});
}
return (hash in fn.memoize) ? fn.memoize[hash] :
fn.memoize[hash] = fn.apply(this, args);
};
}
そして、セレクタを作成するためにそれを使用します。
const selector = memoize((state) =>({
alerts: selectors.alerts(state)
}));
私のアプローチでした全く恣意的です、それは理にかなっていますか?それは受け入れられますか? – shnoby
これは非常に標準的な還元です。 –