2017-08-17 57 views
0

我有4個反應組件頭,模態,容器,索引。在index.js中,我呈現所有組件。現在,我有一個問題我的HTMl頁面正在使用一個js文件(home.js)。它正在執行DOM加載之前。所以,它沒有得到DOM的任何屬性,所以它失敗了。那麼,如何在DOM加載後執行js文件?如何在呈現反應組件後執行js文件?

+2

你是否使用了一些模塊捆綁器? Webpack或Browserify? –

回答

0

將您的home.js代碼換成全局函數,並調用您的根React組件的生命週期方法中的那個函數。

所以你的home.js文件看起來像這樣。

window.executeHome = function() { 
    // your curren home.js code goes here 
} 

和根的componentDidMount方法內部陣營組件,您可以撥打上面的方法,以確保您裝入反應的組分後運行home.js代碼。

componentDidMount() { 
    window.executeHome(); 
} 

但是,考慮這是一種解決方法,它通常不是推薦的。更好的方法是將您的home.js代碼也寫入React組件中。

+0

'windows'?他們什麼時候重命名全局對象:D –

+0

@DimitarChristoff更正:) –

+0

什麼是錯誤? –