我遵循 Google 提供的指南來整合新的 Google 登入。我使用 Google 提供的程式碼產生器創建了 HTML。
這裡我附上了完整的程式碼
<svelte:head> <title>Home</title> <meta name="description" content="Svelte demo app" /> </svelte:head> <section> <div class="h-screen"> <div id="g_id_onload" data-client_id="534101779287-bm07dc8v4ln4kulqbql61nsglcku74vg.apps.googleusercontent.com" data-context="use" data-ux_mode="redirect" data-login_uri="http://localhost:5173/auth/callback" /> <div class="bg-red-300 h-80"> <div class="g_id_signin" data-type="standard" data-shape="rectangular" data-theme="outline" data-text="signin_with" data-size="medium" data-logo_alignment="left" data-width="180" /> </div> </div> </section>
第一次渲染頁面時效果很好。
當我們使用 Command R
或點擊瀏覽器中的重新載入圖示來刷新頁面時,登入按鈕消失。
現在我使用 Javascript 創建了元件,在這裡我添加了答案。
我在
app.d.ts
中將 google 宣告為全域變數我建立了一個 svelte 檔案來建立用於登入按鈕的 svelte 元件
使用 SvelteKit 時,硬重新載入是在伺服器端呈現的。程式碼可能與此不相容或執行順序錯誤。
檢查控制台是否有錯誤,並將必須在客戶端上執行的程式碼移至
onMount
#.您也可以使用ssr
#頁面選項 關閉特定頁面的伺服器端渲染作為最後的手段。