2015-10-09 9 views
37

私はReactJSとフラックスでWebアプリを構築していると私はfindDOMNode方法を使用して私の現在のdivのノードを取得しようとしていると私は次のエラーを取得:ReactJS findDOMNodeとgetDOMNodeは関数ではありません

Uncaught TypeError: React.findDOMNode is not a function 

だから、私はgetDOMNodeを使用しようと、私は非常に同じエラーを取得:

Uncaught TypeError: React.getDOMNode is not a function 

私はJS、私はこれらのメソッドを使用してコードをビルドするためにNPMを使用しています:

var React = require('react'); 
var stores = require('../stores'); 
var MessagesUserContainer = require('./messageusercontainer'); 
var ChatStore = stores.ChatStore; 
var owner = stores.getOwner(); 

var MessagesList = React.createClass({ 

    getInitialState: function(){ 
     return {'muc': []}; 
    }, 
    componentDidUpdate: function(){ 
     var node = React.findDOMNode(this); //Error here 
     node.scrollTop = node.scrollHeight; 
    }, 
    render: function(){ 
     return (
       <div className="chatScroll"> 
        {this.state.muc} 
       </div> 
      ) 
    } 
}); 

module.exports = MessagesList; 

ReactJSのverion:0.14.0

としては答えで指摘EDIT、v0.14.0のようDOMライブラリが反応コアの外にあるので、私が作りました私のコードにいくつかの変更:

var React = require('react'); 
var ReactDOM = require('react-dom'); 
var stores = require('../stores'); 
var MessagesUserContainer = require('./messageusercontainer'); 
var ChatStore = stores.ChatStore; 
var owner = stores.getOwner(); 

var MessagesList = React.createClass({ 

    getInitialState: function(){ 
     return {'muc': []}; 
    }, 
    componentDidUpdate: function(){ 
     var node = ReactDOM.findDOMNode(this); 
     node.scrollTop = node.scrollHeight; 
    }, 
    render: function(){ 
     return (
       <div className="chatScroll"> 
        {this.state.muc} 
       </div> 
      ) 
    } 
}); 

module.exports = MessagesList; 

しかし、私は別の問題を抱えて:

最新で変更
Uncaught Error: Invariant Violation: findDOMNode was called on an unmounted component. 

答えて

51

が反応:

ReactDOM.findDOMNode 

https://facebook.github.io/react/docs/top-level-api.html#reactdom.finddomnode

それはreact-domパッケージです。 ReactDOMServerも別のパッケージに移動されていることに注意してください。おそらく、React関連のプラットフォーム固有のAPI(Reactネイティブなど)の準備中です。

+0

ありがとう、私は彼らが新しいパッケージを作成したのか分かりませんでした。 –

+0

ヘルプマン、今私はこのエラーがあります:キャッチされていないエラー:不変の違反:findDOMNodeがアンマウントされたコンポーネントで呼び出されました。 –

+0

おそらく 'ReactDOM.render'ですか? – user120242

2

反応中v0.14 DOMライブラリがReact.jsから移動されました。紀元前にはいくつかの変更がありますが、コードを適切な方法で書いた場合、変更は苦痛にならないでしょう。完全な概要については、ここをクリックしてください:https://facebook.github.io/react/blog/#major-changes

関連する問題