В вашей функции changeName
вы устанавливаете состояние, а после этого устанавливаете то же состояние в localStorage
, которое не будет работать в вашем случае . Это потому, что setState
- это async
функция, поэтому для ее выполнения потребуется некоторое время, и в это время ваш следующий код будет выполнен. В этом случае ваш localStorage
получит empty value (first time) / previous value.
Чтобы исправить это, вы можете использовать callback
в setState
как,
this.setState({name: 'someName'},
() => {localStorage.setItem('name', this.state.name)} //callback
);
Теперь вы можете каждый раз обновлять значение localStorage
.