2016-02-16 255 views
0

我試圖通過在反應組分但是我得到錯誤的jQuery申請造型Uncaught TypeError: this.getDOMNode is not a function陣營 - 遺漏的類型錯誤:this.getDOMNode不是一個函數

topicsVisited(arr){ 
     $(function() { 
      $.each(arr, function(key, eachVisitedTopic) { 
      console.log(eachVisitedTopic); 
      $(this.getDOMNode()).find('.single-topic[data-topic-id="' + eachVisitedTopic + '"]').css({ 
       'background-color': 'red' 
      }); 
      }); 
     }); 
     }; 
+0

反應是什麼版本您使用? –

+0

@Alexander我正在使用0.14.7 –

+0

似乎[相同。使用ReactDom.findDOMNode(this)。看到這裏](http://stackoverflow.com/a/33568298) –

回答

1

你需要爲了你的綁定功能,正確使用this

topicsVisited(arr) { 
    $(function() { 
     $.each(arr, function(key, eachVisitedTopic) { 
      console.log(eachVisitedTopic); 
      $(this.getDOMNode()).find('.single-topic[data-topic-id="' + eachVisitedTopic + '"]').css({'background-color': 'red'}); 
     }.bind(this)); 
    }.bind(this); 
} 

或創建引用正確this的變量。

topicsVisited(arr) { 
    var self = this; 
    $(function() { 
     $.each(arr, function(key, eachVisitedTopic) { 
      console.log(eachVisitedTopic); 
      $(self.getDOMNode()).find('.single-topic[data-topic-id="' + eachVisitedTopic + '"]').css({'background-color': 'red'}); 
     }); 
    }; 
} 
+0

現在我得到2錯誤'警告:getDOMNode(...)在普通的JavaScript React類中已棄用。使用ReactDOM.findDOMNode(component)代替.'和'Uncaught TypeError:self.getDOMNode不是一個函數' –

+1

是的,'getDOMNode'已被棄用,以支持'react-dom'包中的'findDOMNode'。 'npm install react-dom --save'並且從'this.getDOMNode()'改變爲'ReactDOM.findDOMNode(self)'就可以了! –

1

試試這個

topicsVisited(arr){ 
     var ReactDom = require('react-dom'); 
     var self = this; 
     $(function() { 
      $.each(arr, function(key, eachVisitedTopic) { 
      console.log(eachVisitedTopic); 
      $(ReactDOM.findDOMNode(self)).find('.single-topic[data-topic-id="' + eachVisitedTopic + '"]').css({ 
       'background-color': 'red' 
      }); 
      }); 
     }); 
     }; 
+0

儘管它在控制檯中沒有顯示任何錯誤,但仍然無法正常工作。 console.log輸出'[prevObject:jQuery.fn.init [1],context:div.row,selector:「.single-topic [data-topic-id =」4「]」]' –

+0

我認爲樣式是在安裝和卸載組件時被覆蓋。 –

相關問題