React · Middle · Запитання 40 з 75

Чому цей селектор спричиняє перемальовування за будь-якої дії в store?

const done = useSelector(state =>
  state.todos.filter(t => t.done)
);

Пояснення

useSelector запускається після кожного dispatch і порівнює результат за посиланням. Новий масив ніколи не дорівнює попередньому. Рішення - мемоізований селектор createSelector, який поверне той самий масив, доки state.todos не змінився.

Де почитати

Помилка в запитанні

React · Middle · запитання 40

Перевірте себе

Пройдіть тест React · Middle: запитання й варіанти перемішуються, а наприкінці - розбір помилок.

Пройти цей тест