我有一個組件通過js google api庫處理Google登錄。Next.js服務器呈現組件窗口對象
export default class Index extends React.Component {
componentDidMount() {
window.onGoogleLoginSuccess = this.onGoogleLoginSuccess.bind(this)
}
render() {
return (
<div
className="g-signin2"
data-onsuccess="onGoogleLoginSuccess"
data-theme="dark"
/>
}
}
由於我使用express作爲我的服務器,組件正在服務器中呈現。
我把一些日誌,發現渲染方法正在服務器中調用,componentDidMount永遠不會被調用。
當next.js在服務器中呈現組件時,是否有任何回調,我可以放置一些將在客戶端執行的代碼?我可以在哪裏訪問窗口對象。
它從來沒有被調用過(componentDidMount)?.根據next.js docs'這個生命週期方法只會在客戶端執行'。你是否檢查組件是否實際安裝在客戶端? –
@PieroDivasto它永遠不會被調用。由於在服務器端調用了渲染方法,我認爲組件正在安裝在服務器端。我的問題是,如果有任何回調方法,我可以把我的代碼,將在客戶端執行時,該組件被安裝在服務器端。 – jonathanrz