javascript - باستخدام this.setState في رد الاتصال




callback reactjs (2)

عدم إجراء مكالمة أجاكس في كومبوننتويلمونت.

قم بذلك في كومبوننتديدمونت .

أيضا هناك مشكلة نطاق، لهذا الاستخدام ما يقترح الكسندر (ربط). وثمة احتمال آخر هو:

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 (أكد بالفعل من قبل كليمو في التعليقات)

لدي التعليمات البرمجية التالية الحصول على الجدول الزمني تويتر في عنصر رد الفعل:

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

ولكن لا أستطيع تعيين state هناك، لأنه لم يتم تعيين هذا العنصر في هذه الوظيفة رد الاتصال.

كيف يمكنني تعيين الدولة ضمن هذا الرد؟

نب console.log (البيانات) بدلا من this.setState يعمل بشكل جيد، وهذا هو السبب في أنني أظن أن المشكلة مع هذا المتغير.


يمكنك تعيين this مع طريقة .bind هذا القبيل، واستدعاء twitter.get في .bind كما في هذا 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





this