реагировать родной .then (() => { - PullRequest
0 голосов
/ 28 июня 2018

Я хотел бы реализовать функцию Pull-to-Refresh в ListView в React Native.

...

_onRefresh() {
        this.setState({refreshing: true});
        this._refreshData(this.course).then(() => {
          this.setState({refreshing: false});
        });
      }

....

_refreshData(course) {
    this.props.dispatch(clearLectures());
    this.props.dispatch(fetchLectures(course));
  }

....

  return (

          <ListView
            dataSource={dataSource.cloneWithRowsAndSections(lectures)}
            renderRow={this._renderRow}
            renderSectionHeader={this._renderDayHeader}

            refreshControl={
              <RefreshControl
              refreshing={this.state.refreshing}
              onRefresh={this._onRefresh.bind(this)}
              />
            }

          />

    );

....

Я получаю следующую ошибку: Невозможно прочитать свойство 'then' из undefined.

Должен ли я реализовать какой-либо возврат в функции _refreshData или это другая проблема?

1 Ответ

0 голосов
/ 28 июня 2018

Когда выдается сообщение об ошибке «Не удается прочитать свойство 'имя_свойства' с неопределенным значением», вам необходимо понять, что не определено?

Так что вы делаете что-то вроде «this.undefined.then».

this._refreshData ничего не возвращает, поэтому вы звоните по неопределенному. this._refreshData должен возвращать что-то, что затем имеет свойство: я думаю, вам нужно вернуть Promise.

Что-то вроде:

_refreshData(course) {
    return new Promise((resolve, reject) => {
        //get data
        // resolve(data) or reject(error)
    }
}

Я не знаю, как вы реализовали свой магазин и ваши компоненты, поэтому я не могу сказать что-то еще.

Может быть, эта ссылка может вам помочь.

...