【问题标题】:react-native. Reference Error value is not defined反应原生。参考误差值未定义
【发布时间】:2019-03-12 04:20:03
【问题描述】:

我在 react-native 中设置状态时遇到问题。我可以 console.log 这个值就好了,但是当我调用 setState() 时,我得到参考错误 'targetSpreadsheet' is not defined。

这是在下面的函数中

getCategories = (file) => {
        console.log(this.state.targetSpreadsheet); // works fine
        this.setState({targetSpreadsheet: file});  // targetSpreadsheet is not defined.
}

还有一个调用它的选择器

  <SimplePicker
    ref={'picker2'}
    options={this.state.spreadsheetNames}
    onSubmit={(option) => {
      for(var i = 0; i < this.state.spreadsheets.files.length; i++){
        if(this.state.spreadsheets.files[i].name === option){
          let file = this.state.spreadsheets.files[i];
          this.getCategories(file);
          break;
        }
      }
    }}
  />

编辑

构造函数

  constructor(props){
    super(props);
    this.state = {
      targetSpreadsheet: ''
    }

    this.getCategories = this.getCategories.bind(this);
  }

【问题讨论】:

  • 我相信这种状态会存在,但向我们展示我们可以提供帮助

标签: react-native reference bind setstate


【解决方案1】:

这表明您要访问其中包含 文件数组 的电子表格对象

this.state.spreadsheets.files[I]

但是在您的构造函数中,您已将 targetSpreadsheet 初始化为字符串对象,因此您遇到了错误。

this.state = {
      targetSpreadsheet: ''
    } 

解决方法:你需要把它做成一个对象,文件作为一个空数组。

    this.state = {
              targetSpreadsheet: {
                  files:[]
               }
   }

【讨论】:

  • 第一-谢谢..第二-哦不..由于无法知道(?)错误来自哪里,因此需要数年才能找到错误的启动..
猜你喜欢
  • 1970-01-01
  • 2020-06-03
  • 2016-11-17
  • 2019-07-30
  • 2017-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-21
相关资源
最近更新 更多