首页 > 解决方案 > 在重定向时保留状态,没有 redux 或 react-router

问题描述

我正在创建一个 React 应用程序作为个人项目。我正在使用带有隐式授权流的 OAuth,它让我的用户重定向到另一个页面进行身份验证,然后重定向回我的应用程序。一切都按我的预期工作,但是当用户被重定向时,我的所有状态都被清除了。

例如,我的用户从书籍列表中找到一本书,这会将用户从索引页面带到该特定书籍的显示页面,并且书籍的 ID 保存在组件的状态中。当用户想要将这本书保存到他们的个人帐户时,他们通过 OAuth 登录并返回。现在这本书不再保存在状态中,用户需要以登录用户的身份重新搜索并找到它。如果可能,我想避免使用 redux 和 react-router,到目前为止我想到的唯一解决方法是将书籍 ID 保存到 localStorage,我不确定这是一个好习惯。

还有其他方法可以解决这个问题吗?

标签: reactjs

解决方案


关于您的评论:

如果可能,我想避免使用 redux 和 react-router

Redux 或 react-router 不能解决这个问题。它们以与您现在相同的方式存储数据,在内存中,一旦您刷新或关闭页面,所有数据都将丢失。

关于使用localStorage:如果它对您有用,您可以继续使用它。它是标准的,并且在所有主要浏览器中都受支持。如果您正在处理非常结构化的数据,也许也可以看看IndexedDB


推荐阅读