首页 > 解决方案 > 如何在服务器(SSR)上持久化 redux 用户登录

问题描述

我有一个应用程序可以在客户端上按预期工作,用户登录等。没问题。

我想为用户在登录后可以查看的组件预渲染一些内容,但是据我所知,您无法将存储保存在服务器上。这是有道理的,因为商店经常在localstorage客户端或客户端上持续存在。另外,该redux-persist软件包会警告您有条件地仅在客户端上持续存在。创建商店时,我正在执行以下操作。这将确保客户端存在并在存在时持续存在。它只保留用户:

if (typeof window !== "undefined") {
    persistStore(
        store,
        {
            whitelist: ["user"]
        },
        () => {
            store.dispatch(setPersisted());
        }
    ),
}

请注意,我正在使用 a redux-persist 4.9.1,因为我在迁移到 v5.x 时遇到了麻烦。

那么,如果 store 不能持久化在服务器上,我们如何预渲染只有登录用户才能看到的东西呢?我完全错了吗?

标签: reactjsreduxserver-side-renderingredux-persist

解决方案


推荐阅读