@undefined_title

Почему после добавления reselect компонент все еще обновляется когда приходят старые данные?

Мой код: https://codesandbox.io/s/n15060lny4
5cc8edcee483f812866785.png

При нажатии на noop я добавляю те же данные но с новой ссылкой на объект, так как данные те же то ссылка должна вернуться старая из мемоизации реселекта, и соответственно обновления быть не должно, но компонент почему то все ровно обновляется.
Простой пример:
const selectData = createSelector(
  data => data,
  data => [...data]
)

// Должно быть true но возвращает false
console.log(selectData([{a:1}, {a:2}]) === selectData([{a:1}, {a:2}]))
<code>
  • Вопрос задан
  • 119 просмотров
Решения вопроса 1
rockon404
@rockon404 Куратор тега React
Frontend Developer
Это стандартное поведение библиотеки. По-умолчанию происходит проверка на идентичность:
function defaultEqualityCheck(a, b) {
  return a === b
}


API библиотеки предоставляет возможность создать билдер селекторов с кастомным сравнением.
В официальной документации есть пример с deepEqual
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы