При попытке ввести любое значение в textarea вылетает ошибка, указывающая на то что undefined is not an object (evaluating 'prevState.value.length') а я ни как не могу понять почему prevState получает такое значение. В лекции только сказано что этот метод получает эти значения а откуда и почему я не могу их так использовать я понять не могу. Помогите, пожалуйста разобраться.
Давайте доработаем компонент App
После того, как пользователь введет символ внутри textarea, в консоль должно быть выведено сообщение Symbol added.
После того, как пользователь удалит символ внутри textarea, в консоли должно быть выведено сообщение Symbol removed.
Сравнение должно выполняться внутри метода getSnapshotBeforeUpdate.
Логирование должно производиться внутри метода componentDidUpdate.
Не изменяй никакие методы и состояние внутри компонента App.
`import React from 'react';
class App extends React.Component {
state = {
value: ""
};
getSnapshotBeforeUpdate(prevState){
if(prevState.value.length > this.state.value.length){
return 'Symbol added';
} else if(prevState.value.length < this.state.value.length) {
return 'Symbol removed';
}
return null;
}
componentDidUpdate(snapshot){
if(snapshot!=null){
console.log(snapshot);
}
}
handleChange = ({ target: { value } }) => {
this.setState({ value });
};
render() {
return <textarea value={this.state.value} onChange={this.handleChange} />;
}
}
export default App;
`
Не проходят эти проверки
Метод getSnapshotBeforeUpdate должен возвращать строку Symbol added, если новое state.value длиннее предыдущего.
Метод getSnapshotBeforeUpdate должен возвращать строку Symbol removed, если новое state.value короче предыдущего
Метод getSnapshotBeforeUpdate не должен вызывать console.log
Результат getSnapshotBeforeUpdate должен выводится в консоль в методе componentDidUpdate
Полный путь должен работать правильно для добавления символа в textarea
Полный путь должен работать правильно при удаления символа в textarea