我有一些組件應該儘快做一些工作,只要他們的數據第一次到達並呈現,但不是將來的重新渲染。例如:評論已加載並呈現,現在是1.加載社交媒體庫和2.加載一些Google Analytics。事件像componentDidUpdate,但只發射一次
現在我做這樣的:
componentDidUpdate: function (prevProps, prevState) {
if (this.hasAlreadyUpdatedOnce) {
// ... do some stuff...
} else {
// ... do some stuff that should happen only once...
// 1. load social media libraries
// 2. load some Google Analytics
this.hasAlreadyUpdatedOnce = true;
}
}
但我問自己,如果有比設置一個這樣的屬性更優雅的方式。
但在'componentDidMount',我的初始值ajax請求還沒有發生,這意味着DOM在那裏,但是是空的。我想要執行的操作要求DOM包含來自初始ajax請求的數據。或者我誤解了一些東西? – kraftwer1 2015-02-09 21:22:13
您應該將數據加載到父組件中,並將其作爲道具傳遞,以便在安裝時可以獲取數據 – zackify 2015-02-09 22:39:25