Могу ли я использовать «let» в компоненте реагировать? - PullRequest
0 голосов
/ 24 октября 2019

Я сейчас изучаю React.

Могу ли я использовать «let» в компоненте функции вместо «useState»?

const Func = () => {
  let fruit = "banana";

  const changeFruit = () => {
    fruit = "apple"
  };

  changeFruit();
}
const Func = () => {
  const [fruit, setFruit] = useState("banana");

  const changeFruit = () => {
    setFruit("apple");
  };

  changeFruit();
}

Ответы [ 2 ]

1 голос
/ 24 октября 2019

Могу ли я использовать «let» в компоненте функции вместо «useState»?

Ответ «Нет», вместо состояния можно использовать let. Ваш компонент не будет повторно отображаться, вот что такое состояние:

Пожалуйста, рассмотрите React документов, чтобы помочь вам понять концепцию состояния в React

Надеюсь, это поможет

1 голос
/ 24 октября 2019

Это не функциональный компонент, поскольку функциональный компонент должен возвращать элемент React.

Если это будет функциональный компонент, и вы изменяете переменную синхронно перед возвратом элемента, все в порядке:

const Func = () => {
  let fruit = "banana";

  const changeFruit = () => {
    fruit = "apple"
  };

  changeFruit();

  return <>{fruit}</>; // displays "apple"
};

Если вы измените его асинхронно , например

  setTimeout(changeFruit, 1000);

, тогда компонент не будет повторно отображаться послепеременная изменена. Обычно это не то, что вы хотите. Если вы useState и вызываете функцию setFruit, компонент перезапускается.

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