【问题标题】:Next-Auth: Prevent unnecessary session re-rendersNext-Auth:防止不必要的会话重新渲染
【发布时间】:2021-10-15 01:19:57
【问题描述】:

我目前正在尝试使用next-auth 的会话通过用户 ID 获取一些数据:

const [session] = useSession();

useEffect(() => {
    if (!session) {
        return;
    }

    getProjects(session.user.id).then(setTeams);
}, [session]);

这工作正常,但不知何故最初被渲染两次。此外,更改选项卡并返回也会导致给定钩子的重新渲染。

仅供参考:我使用 SSR 并且已经在 getServerSideProps 中获取会话并将其传递给提供者,我认为这会导致在 init 上进行第二次重新渲染?

<Provider session={pageProps.session}>
    <DataProvider>
        <CustomThemeProvider>
            <GlobalStyle />
            <Navigation />
            <Component {...pageProps} />
        </CustomThemeProvider>
    </DataProvider>
</Provider>

选项卡更改重新渲染来自哪里?

【问题讨论】:

标签: next.js next-auth


【解决方案1】:

是的,感谢您发布该链接 Juliomalves,这也是我的想法。

他们最近发布了一个 v4 测试版,应该可以更好地处理这个问题。如果您碰巧已经在使用react-query (https://github.com/nextauthjs/react-query),还有一个替代的客户端 next-auth 库可以重用 react-query 来处理会话状态。

【讨论】:

    猜你喜欢
    • 2018-12-02
    • 1970-01-01
    • 1970-01-01
    • 2021-07-25
    • 1970-01-01
    • 2020-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多