React JS TypeError: Невозможно прочитать свойство setState неопределенного [дубликата]

Я полагаю, вы также можете добавить это как переменную в свой файл spark-defaults.conf. Итак, что-то вроде:

spark.jars.packages    com.databricks:spark-csv_2.10:1.3.0

Это будет загружать библиотеку spark-csv в PySpark каждый раз при запуске драйвера.

Очевидно, что ответ нуля более гибкий, потому что вы можете добавить эти строки в свое приложение PySpark перед импортом пакета PySpark:

import os
os.environ['PYSPARK_SUBMIT_ARGS'] = '--packages com.databricks:spark-csv_2.10:1.3.0 pyspark-shell'

from pyspark import SparkContext, SparkConf

Таким образом вы импортируете только те пакеты, которые вы на самом деле нужен для вашего скрипта.

3
задан Jonny Buchanan 5 December 2015 в 22:01
поделиться

3 ответа

Вы можете установить this с таким способом .bind и вызвать twitter.get в componentDidMount , как в этом example

componentDidMount: function() {
   twitter.get('statuses/user_timeline', function(error, data) {
      this.setState({tweets: data})
   }.bind(this)); // set this that refers to you React component
}

Example

6
ответ дан Alexander T. 27 August 2018 в 00:25
поделиться

Никогда не выполняйте ajax-вызов в компонентеWillMount.

Сделайте это в компонентеDidMount.

Также есть проблема с областью, для чего используйте предложение Alexander (bind). Другая возможность:

componentDidMount: function() {
    var self = this;
    twitter.get('statuses/user_timeline', function(error, data) {
        self.setState({tweets: data})
    });
}

Также более подробно здесь http://facebook.github.io/react/tips/initial-ajax.html (уже подчеркнуто климо в комментарии)

4
ответ дан François Richard 27 August 2018 в 00:25
поделиться

Есть два способа, поместив его внутри componentDidMount, вы можете решить проблему:

1. Привяжите эту область к функции

.bind (this)

twitter.get('statuses/user_timeline', function(error, data) {
   this.setState({tweets: data})
}).bind(this);

2. Используйте стрелку жира

=>

twitter.get('statuses/user_timeline', (error, data) => {
   this.setState({tweets: data})
});
2
ответ дан Vivek Doshi 27 August 2018 в 00:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: