react-redux-フックのドキュメントで、createSelector()を呼び出すときにセレクターのパラメーターが別のパラメトリックセレクターに配置されるのはなぜですか?

ブルースサン

useSelectorreact-reduxドキュメントフックの例には、コードスニペットがあります。

const selectNumOfTodosWithIsDoneValue = createSelector(
  state => state.todos,
  (_, isDone) => isDone,
  (todos, isDone) => todos.filter(todo => todo.isDone === isDone).length
)

ご覧のとおりisDone、はのパラメータですselectNumOfTodosWithIsDoneValueしかし、なぜそれは別のパラメトリックセレクターに入れられるの(_, isDone) => isDoneですか?次のように書けますか?

const selectNumOfTodosWithIsDoneValue = createSelector(
  (state, isDone) => state.todos.filter(todo => todo.isDone === isDone),
  filteredTodos => filteredTodos.length
)

2つのアプローチの違いは何ですか?

マーカークソン

2番目の例では、常に新しい配列参照が返されるため、filter() 常に完全な再計算が行われます。

現在の(最初の)例には特に満足していませんが、長さを再計算するのはどちらかstate.todosまたはisDone変更された場合のみであるという点でメモ化されています

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ