В приведенном ниже коде, когда я меняю текст ввода, 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>
)}
})