реагируют родной.Значение ошибки ссылки не определено - PullRequest
1 голос
/ 12 марта 2019

У меня проблема с установкой состояния в response-native. Я могу просто установить console.log значение, но когда я вызываю setState (), я получаю Ссылочная ошибка 'targetSpreadsheet' не определена.

Это в следующей функции

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;
        }
      }
    }}
  />

EDIT

Конструктор

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

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

1 Ответ

1 голос
/ 12 марта 2019

Это шоу, вы хотите получить доступ к электронным таблицам объект , в котором содержится массив файлов

this.state.spreadsheets.files[I]

Но в конструкторе вы инициализировали targetSpreadsheet каки строковый объект, поэтому вы получаете сообщение об ошибке.

this.state = {
      targetSpreadsheet: ''
    } 

Решение: Вам нужно сделать его как объект с файлами в виде пустого массива.

    this.state = {
              targetSpreadsheet: {
                  files:[]
               }
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...