Как хук useState способен перерисовать свою родительскую функцию? - PullRequest
1 голос
/ 20 марта 2019

Может ли кто-нибудь помочь мне понять, как функционал cmp переопределяется при каждом изменении состояния.

см. Ниже, например,

function App() {
  const [count, updateCount] = useState(0);

  return (
    <div className="App">
      <h1>{count}</h1>
      <button onClick={() => updateCount(count + 1)}>Update</button>
    </div>
  );
}

Если я сравню это с компонентом реагирования на основе классов,там у нас была функция рендеринга внутри класса, которая, по моему мнению, должна вызывать триггер при любых изменениях состояния или реквизита (должна быть цепочка функций жизненного цикла, и одной из них будет this.render ())

Но с приведенной выше структурой кода App является функциональным компонентом, и внутри приложения мы меняем состояние / счет, как реагировать, чтобы узнать, что после функции updateCount / setter App / (или ее родительская функция) должны вызываться снова?Я имею в виду, что мы не передаем ссылку на функцию App для использования вправо.

1 Ответ

1 голос
/ 20 марта 2019

Ваш код внутри вашей функции рендеринга реагирует на ваше состояние.Люди любят говорить, что пользовательский интерфейс является визуальным представлением состояния вашего компонента.

До выпуска Hooks не было никакого способа иметь внутреннее состояние React в компоненте функции.Возможно, вы использовали Redux, MobX или какую-либо другую стороннюю библиотеку для управления вашим состоянием, но не могли подключиться к локальному состоянию компонента.

Ваша функция рендеринга ведет себя точно так же, как в компоненте класса с состоянием.

...