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

Почему не изменяется состояние компонента?

Здравствуйте. Есть текстовый input, который рендерит компонент TestInput.

class TestInput extends React.Component {

	constructor(props){

		super(props);

		this.state = {myValue: ""};

		this.onChangeHandler = this.onChangeHandler.bind(this); 
	}

	onChangeHandler(e) {

		this.setState = ({
			myValue: e.target.value
		});

		//alert(e.target.value);
	}

	render() {

		return(

			<input className = "test-input" type="text" value={this.state.myValue} onChange={this.onChangeHandler} placeholder='введите значение' />
		);
	}
}


При изменении input - а, срабатывает метод onChangeHandler, который должен менять состояние элемента. Но напечатать что - либо в текстовом поле не представляется возможным. В инспекторе myValue не меняется, после строчки с изменением значения - дебаггер прыгает в react-dom.development.js. Как быть? :с
  • Вопрос задан
  • 594 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Решения вопроса 1
@lnked
попробуйте так:

onChangeHandler (e) {
        this.setState({
            myValue: e.nativeEvent.target.value
        })
}


onChange={this.onChangeHandler}
Заменить на:
onChange={this.onChangeHandler.bind(this)}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
ITK academy Воронеж
от 50 000 до 90 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽