Первый шаг в изучении того, как делать то, что вы хотите, - это изучить, как работает Состояние React ( официальные документы отлично объясняют это).
Этопример не завершен, но должен помочь вам пройти процесс.
class CommentForm extends Component {
constructor(props) {
super(props);
this.state = {
author : '',
message : '',
}
this.onChangeAuthorName = this.onChangeAuthorName.bind(this);
this.onBlurAuthorName = this.onBlurAuthorName.bind(this);
}
onChangeAuthorName(e) {
this.setState({ author: e.target.value });
}
onBlurAuthorName() {
// trim on blur (or when you send to the network, to avoid
// having the user not being able to add empty whitespaces
// while typing
this.setState({ author: this.state.author.trim() })
}
render() {
return (
...
<input value={this.state.author} onChange={this.onChangeAuthorName} onBlur={this.onBlurAuthorName} />
...
);
}
}
Обычно, когда вы хотите «установить» переменные в React, вы не добавляете их, как это делается в классах Javascript (this.comment = e.target.value
), но вместо этого используйте функцию setState ().Из документов:
// Wrong
this.state.comment = 'Hello';
Instead, use setState():
// Correct
this.setState({comment: 'Hello'});
(ПРИМЕЧАНИЕ. В качестве альтернативы это можно сделать с помощью React Hooks, но я рекомендую вам изучить методы жизненного цикла не понаслышке. Удачи!)