Как стать автором
Обновить

Комментарии 5

Давайте попробуем в комментариях подробно описать работу кода из последнего вопроса

Я так понимаю, происходит следующее. «Цепляемся» через хук к переменной text из state и инициируем ее как «World!», и на первом рендере значение в инпуте будет «World!». Далее, согласно reactjs.org/docs/hooks-reference.html#useeffect,
The function passed to useEffect will run after the render is committed to the screen. Think of effects as an escape hatch from React’s purely functional world into the imperative world.

т.е. после первого рендера из-за useEffect запускается таймаут, который через секунду обновит text в state на «Hello World!». По истечении секунды state обновляется, value инпута становится «Hello World!», срабатывает onChange, text в state становится «Hello World!», происходит очередной рендер и снова запускается таймаут, который через секунду обновит text в state на «Hello Hello World!», и именно это значение и будет в input через 2.5 секунды. Вроде так.

Секция 4, вопросы 1-2.


Похоже вам следует уточнить конструкцию 'this.state?', указав, что значение считывается асинхронно, после цикла апдейта компонента. Если же мы просто поставим точку останова на этой строчке, то изменения setState будут зашедулены, но не применены к this.state, отсюда ответы я ожидал следующие:

Вопрос 1: ответ 4) { a: 'a' }
Вопрос 2: нет правильного ответа среди предлагаемых вариантов

Да, действительно, имеется в виду конечное состояние компонента после updating цикла.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий