From 427090f72d4537558f6369614acc179fa5fd4343 Mon Sep 17 00:00:00 2001 From: SeojinSeojin <1106laura@naver.com> Date: Sat, 11 Nov 2023 01:18:45 +0900 Subject: [PATCH] fix: fix incompatibility of amplitude and ssr --- src/pages/_app.tsx | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index 159cf956..d852813a 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -5,7 +5,7 @@ import type { AppProps } from 'next/app'; import Head from 'next/head'; import { useRouter } from 'next/router'; import { Global } from '@emotion/react'; -import { useEffect } from 'react'; +import { useEffect, useState } from 'react'; import { QueryClient, QueryClientProvider } from 'react-query'; import { ReactQueryDevtools } from 'react-query/devtools'; import SEO from '@src/components/common/SEO'; @@ -28,12 +28,19 @@ export const queryClient = new QueryClient({ }); amplitude.add(pageViewTrackingEnrichment()); -amplitude.init(AMPLITUDE_API_KEY, { - logLevel: amplitude.Types.LogLevel.Warn, - defaultTracking: true, -}); function MyApp({ Component, pageProps }: AppProps) { + const [isAmplitudeInitialized, setIsAmplitudeInitialized] = useState(false); + useEffect(() => { + if (!isAmplitudeInitialized) { + amplitude.init(AMPLITUDE_API_KEY, { + logLevel: amplitude.Types.LogLevel.Warn, + defaultTracking: true, + }); + setIsAmplitudeInitialized(true); + } + }, [isAmplitudeInitialized]); + const router = useRouter(); useEffect(() => { router.events.on('routeChangeComplete', gtm.pageview);