Обратите внимание, что вопрос НЕ об асинхронном характере использованияState. Это Асинхронный , и на него хорошо ответили: Метод использования useState, не отражающий изменения немедленно Пожалуйста, не путайте это с этим! Я использовал useEffect, чтобы заставить кнопку работать, как сообщается в codepen
Мой вопрос: могу ли я добавить / включить какую-либо асинхронную функцию в основной компонент? Основной компонент: HelloWorld Подфункция: InterestShown => Может ли это быть асинхронным? в примере я максимально упростил это с выводом console.log.
Это рекомендуемый маршрут или я пытаюсь что-то странное?
Я пытался найти решение этой проблемы, но я думаю, что все ответы были направлены на занятия, и я надеюсь, что это будет сделано в React Functional Component, если это возможно.
Я определил состояние следующим образом: const [interested, setInterested] = React.useState(false)
, когда я вызываю эту функцию:
function interestShown() {
console.log("Before Set State fired", interested)
setInterested(!interested)
console.log("After Set State Fired", interested)
}
Журнал консоли после изменения состояния должен показывать измененное состояние, Я не мог получить это, я попробовал много вариантов
Моя проблема здесь в этом коде пера: https://codepen.io/deepeshkr/pen/PowQWwv
Вывод журнала консоли:
pen. js: 6 до установки состояния State false
pen. js: 8 после установки состояния F false false => это должно быть верно, но я предполагаю это асинхронное изменение, это мой вопрос, как запустить это после изменения состояния?
pen. js: 14 Fire only true, true true
Есть похожие вопросы, но я не уверен, что они задают то же самое, что я задаю, или вопрос хорошо объяснен, чтобы продемонстрировать проблему.