@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)
  • Вопрос задан
  • 138 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега React
Открываем документацию и видим, что

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

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

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