Задать вопрос
@thistlemr11

Некорректно работает эвент?

class AddInfo extends Component{

    state={
        addText:false
    }

    render() {

        const {classes}=this.props
        const newStyles=injectSheet(styles)(AddInfo)
        const inState= this.state.addText?'true':'false'

        return (

            <div>
                <input  type="text" className={classes.positionForm} onChange={this.addEvent}/>
                {inState}
            </div>
        );
    }
    addEvent=()=>{
        this.setState({
            addText:!this.state.addText
        })
    }
}


Есть код выше. Внутри него есть форма,в которую вводится текст. Так же есть эвент onChange,который мне нужен для того,что бы запоминать то,что было введено. Однако я столкнулся с проблемкой:
Насколько я помню,эвент onChange для текстовых элементов срабатывает при потере фокуса. Однако в моём коде он срабатывает при каждом вводе цифры-буквы-символа в мой инпут. Не знаю вот,как исправить.
  • Вопрос задан
  • 52 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Решения вопроса 1
0xD34F
@0xD34F Куратор тега React
Всё работает так, как и должно. Хотите, чтобы обработчик вызывался при потере фокуса - onChange замените на onBlur.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Нижний Новгород
от 80 000 до 120 000 ₽
ITK academy Воронеж
от 50 000 до 90 000 ₽