Задать вопрос
@The_good_game

Почему не вызывается второй аргумент внутри React.memo()?

Я ожидал, что после нажатия на компонент выполнится функция check внутри React.memo(), и он не обновится. Но эта функция не выполняется, и я не могу понять, в чём дело.

const Item = styled.div`
  //styles
`;

const Cell = (props) => {
  const [isSelected, setIsSelected] = useState(false);

  return (
    <Item onClick={() => setIsSelected(!isSelected)} status={{key: isSelected}} />
  )
}

const check = (prevProps, props) => prevProps === props;

const memoComp = React.memo(Cell, check)
  • Вопрос задан
  • 174 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
0xD34F
@0xD34F Куратор тега React
Открываем документацию и видим, что

React.memo затрагивает только изменения пропсов. Если функциональный компонент обёрнут в React.memo и использует useState, useReducer или useContext, он будет повторно рендериться при изменении состояния или контекста.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы