首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在react (浏览器扩展)中设置defalulValue或存储值

如何在react (浏览器扩展)中设置defalulValue或存储值
EN

Stack Overflow用户
提问于 2020-02-16 21:57:18
回答 1查看 58关注 0票数 0

由于没有使用react的经验,我正在开发一个带有reactJS的浏览器扩展(chrome和firefox),并在用户登录之后使用它,即使UI设置为我想要的默认值,但功能并未实现。然而,在用户选择一个选项之后,该功能就可以工作了。

这是我的状态:

代码语言:javascript
复制
... 
 state {
  mode: 'mode-1'
 }
...

我的函数:

代码语言:javascript
复制
  onChange = e => {
   let newMode = e.target.value

   this.setState({
     mode: newMode
    })
    this.handleChanges(newMode)
 };

  handleChanges=(setMode)=> {
   chrome.storage.local.set({ 'mode': setMode })
 }
  getStoredMode= () => {
   chrome.storage.local.get(['mode'], (result) => {
   ...
  }
 }
  componentDidMount () {
   this.getStoredMode()
  }

我的无线电组件(Ant-design):

代码语言:javascript
复制
<RadioGroup onChange={this.onChange} className="radio__group" value={this.state.mode}>

<Radio defaultChecked={true} className="radio__group-text" value='mode-1'>
    <span className='radio__group-span'>mode-1</span>
</Radio>

<Radio className="radio__group-text" value='mode-2'>
    <span className="radio__group-span">mode-2</span>
</Radio>

<Radio className="radio__group-text" value='mode-3'>
    <span className="radio__group-span">mode-3</span>
</Radio>

</RadioGroup>

任何关于使此单选按钮工作的建议都将非常感谢

EN

回答 1

Stack Overflow用户

发布于 2020-02-24 23:11:47

我检查了你的代码沙箱。如果chrome存储中没有任何内容,您应该添加一个检查,然后从state获取默认值。

代码语言:javascript
复制
 storedModeInLocalStorage = () => {
     chrome.storage.local.get(['mode'], function(result) {
        let value = result.mode || this.state.mode;
        console.log('Value currently is ' + value );
     });

  };
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60249215

复制
相关文章

相似问题

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