У меня есть элемент инпута
<Input type='text' onChange={this.onEmailChanged} value={this.state.email} placeholder="Email"/>
Функция обработки:
onEmailChanged = (e) => {
this.setState({
email: e.target.value
})
console.log(this.state.email);
}
Но когда я изменяю стейт вводя данные он изменяется с задержкой, вот так:
ввел 't' => консоль : (пусто)
ввел 'test@mail.ru' => консоль : 'test@mail.r'
подскажите, как избавиться от такого эффекта?
Ты правильно изменяешь state. Но дело в том, что это асинхронная операция, и что бы выполнить некий код(в твоем случае вывод в консоль) только после того как произошла мутация состояния, можно, например, использовать callback функцию:
this.setState(
{
email: e.target.value
},
() => {
console.log(this.state.email);
}
);
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Возникла проблема, пишу программу на WPF и мне нужно заполнять TextBox Дело в том, что я заполняю TextBox последовательно после проверки разных условий