【发布时间】:2020-09-26 08:22:56
【问题描述】:
即使有解决这个问题的方法,我也想了解为什么我下面的当前方法不成功。我想知道为什么本地存储记录状态的先前值,即使它与setState 绑定?
说明:
有一个带有 onChange 功能的输入字段,用于检查用户何时键入并将其正确保存到 localStorage。
<input required type="text" className="form-control" id="hotelName" name="hotelName" onChange={this.onInputChange} />
onInputChange(event) {
localStorage.setItem('hotelCreateStep1', JSON.stringify(event.target.value));
}
情况:
因此,当它打算将 event.target.value 写入状态对象之前,然后将其写入 localStorage,如下所述,它会写入对象的先前值(仅丢失最后键入的字母或任何类型的输入尝试)。
onInputChange(event) {
this.setState({
hotelCreateStep1:{
...this.state.hotelCreateStep1,
[event.target.name]: event.target.value
}
});
localStorage.setItem('hotelCreateStep1', JSON.stringify(this.state.hotelCreateStep1));
}
【问题讨论】:
标签: reactjs events local-storage onchange setstate