Изменяются ли запомненные обратные вызовы, только если их зависимости являются частью состояния? - PullRequest
0 голосов
/ 26 апреля 2020

Я получил запомненный обратный вызов React, который использует значение из хранилища с избыточностью:

const filterValue = useSelector(state => state.filterValue);
const filter = useCallback(
item =>
  includes(item.name.toLowerCase(), filterValue.toLowerCase()) ||
  includes(item.description.toLowerCase(), filterValue.toLowerCase()),
[filterValue]);

Мой вопрос заключается в том, будет ли запомненный обратный вызов на самом деле пересчитываться только при изменении filterValue, или у меня есть установить filterValue в качестве состояния компонентов вместо хранилища редуксов (что означает const [filterValue, setFilterValue] = useState('');), чтобы было обнаружено изменение зависимости?

1 Ответ

0 голосов
/ 26 апреля 2020

Да, он будет перерисован, только когда filterValue изменится.

Если вам интересно, почему вы можете достичь пика useSelector реализации и увидеть useReduxContext вызывается Context API.

Это означает, что состояние filterValue, которое было выбрано useSelector, является частью состояния компонентов, как при использовании useState, поэтому оно является допустимым значением для useEffect Массив зависимостей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...