This works perfectly fine in React version 0.12:
componentDidMount: function () {
var dom = this.getDOMNode();
}
The variable dom
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'));