基本上,我有两个按钮,两个按钮都将我的this.state.language更改为"en“或"es”。我已经创建了两个onClick方法,在更改它时,将其保存到本地存储中。但是,这样做之后,当我转到另一个页面时,状态会恢复到默认值。
constructor(){
super();
this.state = {
sideNav: '',
language: ''
}
this.langEn = this.langEn.bind(this);
this.langEs = this.langEs.bind(this);
}
langEn() {
this.setState({language: 'en'});
localStorage.setItem('language', JSON.stringify(this.state.language));
console.log(this.state);
}
langEs() {
this.setState({language: 'es'});
localStorage.setItem('language', JSON.stringify(this.state.language));
console.log(this.state);
}语言状态也被传递到我的路线中,作为一个支柱。
发布于 2019-03-05 13:04:34
唯一需要做的事情是,从本地存储读取默认值。另外,setState是异步方法,它有一个回调,因此您必须在其中将数据设置为localStorage。
constructor(){
super();
this.state = {
sideNav: '',
language: localStorage.getItem('language')
}
this.langEn = this.langEn.bind(this);
this.langEs = this.langEs.bind(this);
}https://stackoverflow.com/questions/55003372
复制相似问题