在下面的代碼中,當我更改輸入文本時,localStorage不保存最後一個符號。就好像我寫qwerty一樣,刷新它只給qwert。爲什麼localStorage不保存這個組件中的最後一個符號?
let NameAndCity = React.createClass ({
getInitialState: function() {
return {
name: this.props.name,
city: this.props.city
};
},
componentWillMount: function() {
let username = localStorage.getItem('username')
let city = localStorage.getItem('city')
if(username && city){
this.setState({
name: username,
city: city
})
} else {localStorage.setItem('username', this.state.name)
localStorage.setItem('city', this.state.city)}
},
changeName(e){
this.setState({name: e.target.value})
localStorage.setItem('username', this.state.name)
},
changeCity(e){
this.setState({city: e.target.value})
localStorage.setItem('city', this.state.city)
},
render(){return (
<div className='name-and-city'>
<input value={this.state.name} onChange={(e)=> this.changeName(e)}/>
<input value={this.state.city} onChange={(e)=> this.changeCity(e)}/>
</div>
)}
})