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"
/>
}
}
エクスプレスを私のサーバーとして使用しているので、コンポーネントはサーバーでレンダリングされています。
ログをいくつか入れて、サーバーでrenderメソッドが呼び出されており、componentDidMountが呼び出されないことがわかりました。
next.jsがサーバー内のコンポーネントをレンダリングするときに、クライアント側で実行されるいくつかのコードを置くコールバックがありますか?私はウィンドウオブジェクトにアクセスすることができます。
これは決して呼び出されませんか(componentDidMount)? next.js docsによると、このライフサイクルメソッドはクライアント上でのみ実行されます。 'コンポーネントが実際にクライアント側にマウントされているかどうかを確認しましたか? –
@PieroDivasto決して呼び出されません。レンダリングメソッドはサーバー側で呼び出されているので、コンポーネントがサーバー側にマウントされていると思います。私の質問は、コンポーネントがサーバー側にマウントされているときにクライアント側で実行されるコードを置くコールバックメソッドがあるかどうかです。 – jonathanrz