стейт не обязан сразу меняться на каждом сетстейт, это может быть оптимизированно
Как сделать, чтобы перед переходом на другую страницу менялся стейт,
useEffect
это асинхронные операции. она записывает все... но либо делай что-то когда уже поменялось. либо жди исполнения. сразу после сетстейта ты не получишь новое значение в стейте. о чем можно почитать здесь. понимаю... мало кто вообще читает документацию. но иногда полезно. https://ru.reactjs.org/docs/react-component.html#setstate
Я реактом 4 месяца не занимался, кодил на вью, вернулся на реакт, два дня всего вспоминаю пока
логически просто подумай, как переменная может измениться из-за вызова функции?
Хоть на ассемблере. Дали развернутый ответ и примером с доки - вместо благодарности за помощь нытье
а как ты определяешь и где именно что "не записывается сразу"?
Я уже решил проблему, спасибо
просто не совсем понятно как связана ссылка на доку которую тебе скинули с твоим вопросом
он делает setState и сразу следом console.log(state) и получает старое значение.
если делать в классах this.setState(prevState => {...}, () => { тут колбек который выполнится сразу после установки нового стейта});
вариантов несколько) вопрос был - че не работает то?)
не работает потому что функция в которой он этот стейт чекает получила значение переменной в качестве замыкания на стадии создания этой функции
Обсуждают сегодня