Обратите внимание, что вопрос НЕ об асинхронном характере useState. Это асинхронный, и здесь хорошо дан ответ: useState set метод, который не отражает изменения немедленно. Не путайте это с этим! Я использовал useEffect, чтобы кнопка работала, как и в коде
Мой вопрос: могу ли я добавить / включить любую асинхронную функцию в основной компонент? Главный компонент: HelloWorld Дополнительная функция: InterestShown => Может ли это быть асинхронным? в этом примере я максимально упростил его с помощью вывода console.log.
Это рекомендуемый маршрут или я пытаюсь сделать что-то странное?
Я попытался найти решение этой проблемы, но я думаю, что все ответы направляли меня к классам, я ищу, чтобы это произошло в функциональном компоненте React, если это возможно.
Я определил состояние так: 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 Перед срабатыванием Set State false
pen.js: 8 After Set State Fired false => это должно быть правдой, но я предполагаю, что это асинхронное изменение, это мой вопрос, как запустить это после изменения состояния?
pen.js: 14 Огонь только это правда правда
Есть похожие вопросы, но я не уверен, что они задают то же, что и я, или вопрос хорошо объяснен, чтобы продемонстрировать проблему.
const newValue = !interested;
- person Emile Bergeron   schedule 07.01.2020