состояние прерывания, установленное с помощью вызова функции перехвата React useState - PullRequest
1 голос
/ 06 августа 2020

С помощью старого метода this.setState(), основанного на классах, мы могли бы вернуть null из функции, переданной в setState, чтобы сообщить React не делать ничего с этой спецификацией. c setState call:

this.setState(({ value }) => {
  if (value === 0) {
    return null;
  } else {
    return { value: value - 1 };
  }
});

Я пытаюсь понять, как правильно это сделать с помощью React Hooks, правильно ли указано ниже?

const [x, setValue] = useState(0);
setValue(value => {
  if (value === 0) {
    return value;
  } else {
    return value - 1;
  }
});

Я пытаюсь не запускать повторный рендеринг, если я прохожу исходное значение.

1 Ответ

0 голосов
/ 06 августа 2020

Похоже на задание для useEffect хука:

useEffect(() => {
setValue(value => {
  if (value === 0) {
    return value;
  } else {
    return value - 1;
  }
});
}, [x])

Эффект будет запущен только при изменении x.

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