Предупреждение: невозможно вызвать setState для компонента, который еще не смонтирован - PullRequest
0 голосов
/ 26 сентября 2019

Я получаю это предупреждение, когда пытаюсь изменить входное значение заданного состояния во время модульного тестирования (шут)

Предупреждение. Невозможно вызвать setState для компонента, который еще не смонтирован.Это не работает, но это может указывать на ошибку в вашем приложении.Вместо этого присвойте this.state напрямую или определите свойство класса state = {}; с желаемым состоянием в компоненте Login.Мой код:

this.onChangeEvent = this.onChangeEvent.bind(this);

this.state = { email: '' }

componentDidMount() { this.onChangeEvent(); }

componentWillUnmount() { }

onChangeEvent(event) {     
    this.setState({ email: e.target.value });     
}

Я не смог найти правильное решение для этого предупреждения.Может ли кто-нибудь помочь мне разрешить это предупреждение?

Ответы [ 2 ]

2 голосов
/ 26 сентября 2019

Привязка контекста * Инициализация состояния и должна выполняться внутри constructor.

constructor(props) {
    super(props);
    this.onChangeEvent = this.onChangeEvent.bind(this);

    this.state = { email: '' }
}
0 голосов
/ 26 сентября 2019

Попробуйте это

class App extends Component {
constructor(props) {
    super(props);
    this.state = {
        email: ""
    }
}
onChangeEvent(event) {
    this.setState({
        email: event.target.value
    });
}
render() {
    const {
        email
    } = this.state;
    return ( <div className = "App">
        <input type = "text"
        onChange = { this.onChangeEvent.bind(this)}
        value = {email}/>
        </div>
    );
 }
}
...