React 0.13 this.getDOMNode() equivalent to React.findDOMNode()

后端 未结 5 2215
死守一世寂寞
死守一世寂寞 2020-12-13 04:29

This works perfectly fine in React version 0.12:

componentDidMount: function () {
    var dom = this.getDOMNode();
}

The variable dom

5条回答
  •  暗喜
    暗喜 (楼主)
    2020-12-13 05:03

    Update React v0.14+

    In React v0.14+ this has changed, you should now use the react-dom module:

    import ReactDOM from 'react-dom';
    
    ReactDOM.findDOMNode(this);
    

    ES6

    class Test extends React.Component {
      componentDidMount() {
        const element = ReactDOM.findDOMNode(this);
        console.log(element);
        alert(element);
      }
      
      render() {
        return (
          
    test
    ); } } ReactDOM.render(, document.getElementById('r'));
    
    
    

    ES5

    var Test = React.createClass({
      componentDidMount: function() {
        var dom = ReactDOM.findDOMNode(this);
        console.log(dom);
        alert(dom);
      },
      render: function() {
        return React.createElement('div', null, 'test');
      }
    });
    
    ReactDOM.render(React.createElement(Test), document.getElementById('r'));
    
    
    


    React v0.13 and below

    Passing this as the parameter should definitely work:

    React.findDOMNode(this);
    

    If not, something else may be going on. See demo below:

    var Test = React.createClass({
      componentDidMount: function() {
        var dom = React.findDOMNode(this);
        console.log(dom);
        alert(dom);
      },
      render: function() {
        return React.DOM.div(null, 'test');
      }
    });
    
    React.render(React.createElement(Test), document.getElementById('r'));
    
    

提交回复
热议问题