我知道你可以調用React.findDOMNode(this),但是有另一種方法嗎?我想知道是否保留了一個引用(並且在組件安裝時明顯可用)。如何獲取組件的當前本機元素?
回答
反應,裁判已經有一段時間的移動目標。
Facebook has said字符串引用已被棄用。
如果您之前曾使用過React,那麼您可能熟悉ref屬性是字符串的舊API,如「textInput」,並且DOM節點以this.refs.textInput的形式訪問。我們建議不要這樣做,因爲字符串參考有一些問題,被認爲是遺留問題,並且可能會在未來版本之一中被刪除。如果你目前使用this.refs.textInput來訪問ref,我們推薦使用回調模式。
當前的最佳做法是回調參考。理想情況下,您可以使用setState管理組件狀態。然而,如果您需要使用其他庫或動畫,則需要引用。另請參見:ReactDOM.findDOMNode()
const HowdyPardner = React.createClass({
_getHeaderEl: function(el) {
this.headerEl = el;
},
componentDidMount() {
this.headerEl.textContent = 'YEEHAW';
},
render: function() {
return (
<h1 ref={this._getHeaderEl}>Howdy Pardner!</h1>
);
}
});
我不知道你當前的本地元素是什麼意思,但是: 你可以使用參考文獻。
class Container extends Component {
componentDidMount(){
this.refs.main.innerHTML = "Yep";
}
render(){
return (
<div ref="main" >Hello World</div>
)
}
}
通常,上面的代碼在屏幕上顯示「Yep」。
只是把ref
財產的任何元素例如:<div ref="main">Hello World</div>
,你可以訪問裁判在componentDidMount:this.refs.main
我注意到ref回調比字符串引用更受歡迎。是否真的沒有辦法將「this」作爲本地dom元素(假設它已經掛載)? – chrisp
爲什麼ref回調首選? – JordanHendrix
注意: 儘管字符串參考不被棄用,但它們被認爲是遺留的,並且在將來某個時候可能會被棄用。回調參考是首選。 [引用組件](https://facebook.github.io/react/docs/more-about-refs.html) – chrisp
- 1. 如何獲取當前元素高度?
- 2. 如何獲取當前元素屬性
- 3. 獲取當前元素
- 4. 如何從當前點擊的div元素獲取文本值
- 5. 如何獲取組件的值本機
- 6. 獲取元素的當前HTML
- 7. jQuery的獲取當前元素(X)HTML
- 8. 在emberJS的{{action}}獲取當前元素
- 9. 獲取數組的前N個元素?
- 10. 點擊獲取當前元素
- 11. Jquery.ui:從當前元素獲取ID
- 12. 以PHP獲取當前HTML元素
- 13. AngularJS - 獲取當前元素與jQuery
- 14. Mule - 如何獲取Java組件中當前組件的名稱
- 15. 獲取父數組對象中當前元素的編號
- 16. 如何獲取Bootstrap Affix下的當前元素?
- 17. 如何使用jQuery獲取元素的當前文檔
- 18. 如何獲取當前活動/聚焦的元素ID
- 19. 如何獲取當前元素的ID點擊
- 20. 如何獲取Angular 2中當前元素的引用?
- 21. VTD-XML:如何獲取當前元素的標籤名稱?
- 22. 如何獲取NSDatePicker中當前選定的元素?
- 23. 如何獲取沒有id和class的當前元素?
- 24. 如何獲取AngularJS中ngRepeated元素的當前子範圍?
- 25. 如何在jQuery中獲取當前查詢的元素?
- 26. 如何獲取鏈接元素的當前fontSize?
- 27. 使用xpath獲取當前元素內的元素
- 28. jQuery:獲取當前元素後的立即下一個元素
- 29. 如何僅考慮可見元素來獲取當前元素的索引?
- 30. 機械化如何獲取當前url
進一步閱讀使我的方法已過時 「getDOMNode()」。我很好奇沒有一個ReactComponent的屬性是什麼原因,一旦它被掛載就引用DOM元素。 – chrisp