首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当通过本地存储设置时,React状态仍在变化

当通过本地存储设置时,React状态仍在变化
EN

Stack Overflow用户
提问于 2019-03-05 12:57:06
回答 6查看 51关注 0票数 0

基本上,我有两个按钮,两个按钮都将我的this.state.language更改为"en“或"es”。我已经创建了两个onClick方法,在更改它时,将其保存到本地存储中。但是,这样做之后,当我转到另一个页面时,状态会恢复到默认值。

代码语言:javascript
复制
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);
  }

语言状态也被传递到我的路线中,作为一个支柱。

EN

Stack Overflow用户

发布于 2019-03-05 13:04:34

唯一需要做的事情是,从本地存储读取默认值。另外,setState是异步方法,它有一个回调,因此您必须在其中将数据设置为localStorage

代码语言:javascript
复制
constructor(){
    super();
    this.state = {
      sideNav: '',
      language: localStorage.getItem('language')
    }
    this.langEn = this.langEn.bind(this);
    this.langEs = this.langEs.bind(this);
  }
票数 0
EN
查看全部 6 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55003372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档