2016-04-16 4 views
3

Wenn Elementobjekt direkt von this.refs erhalten wird, dann Warum ReactDOM.findDOMNode?Was ist der Unterschied zwischen ReactDOM.findDOMNode (this.refs.a) und this.refs.a?

var HelloMessage = React.createClass({ 
click:function(){ 
    console.log(ReactDOM.findDOMNode(this.refs.a)) 
    console.log(ReactDOM.findDOMNode(this.refs.b)) 
    console.log(this.refs.a) 
    console.log(this.refs.b) 
}, 
    render: function() { 
    return <div><div onClick={this.click}>click</div>Hello {this.props.name}{this.props.no?<div ref="a">{this.props.no}</div>:<div ref="b"></div>}</div>; 
    } 
}); 

ReactDOM.render(<HelloMessage name="John" no={1}/>, mountNode); 

Antwort

5

Aus der Sicht der Nutzung gibt es keinen Unterschied zwischen diesen.

ReactDOM.findDOMNode war eine Möglichkeit, Ref in der Vergangenheit zu erhalten. Derzeit ist es veraltet und this.refs ist, wie Sie es jetzt tun sollten.

+3

Beachten Sie, dass Sie 'findDOMNode' noch verwenden möchten, wenn das Ziel' ref' eine React-Komponente ist. – LeZuse

+0

Es ist immer noch in der Dokumentation und es gibt keine Abmeldungsbenachrichtigung https://facebook.github.io/react/docs/react-dom.html – Omid

+2

Für diejenigen, die hier suchen, ist der Hinweis auf die Ablehnung von ReatDOM.findDOMNode https: // github. com/yannickcr/eslint-plugin-react/issues/678 – TheDanMan

Verwandte Themen