Привет. Я пытаюсь понять, почему этот конкретный код работал, а мой предыдущий код не работал.
Я предоставил оба фрагмента ниже:
КОД РАБОТЫ:
handleInputChange = (e) => {
let { value } = e.target;
this.setState(state => { return ({searchField : value}) }, () => console.log("new state is ", this.state.searchField))
}
НЕ РАБОТАЮЩИЙ КОД: ошибка, которую я получаю здесь: cannot read property value of null.
handleInputChange = (e) => {
this.setState(state => { return ({searchField : e.target.value}) }, () => console.log("new state is ", this.state.searchField))
}
ЭТО МЕТОД ПОДАЧИ, КОТОРЫЙ ОБЩИЙ ОБА:
render() {
let { monsters, searchField } = this.state;
const filteredMonsters = monsters.filter((monster) => {
return monster.name.toLowerCase().includes(searchField.toLowerCase());
})
return (
<div className="App">
<input type="search" placeholder="Monster Name" onChange={this.handleInputChange}/>
<CardList monsters={filteredMonsters}/>
</div>
);
Может кто-нибудь объяснить, почему работает синтаксис деструктурирования?
Спасибо!