我有一个单例类型记录类,它存储用户的登录凭据。我将它们设置在登录页面上,然后使用角度Router.navigate转到下一页。(没有params),在下一页上,我想使用我的单例,它工作得很好,但是如果我刷新页面,单例是未定义的?我怎么才能解决这个问题?
这是刷新后的错误:
的属性“socialSecurityNumber”
谢谢
发布于 2021-02-16 07:53:14
如果刷新页面(浏览器中的F5),整个SPA将再次引导并再次创建服务。
这意味着除非存储在存储区或cookie中,否则服务的新实例将不具有用户数据。
还检查服务是否“在根中”提供,而不是在任何模块提供程序数组中提供,因此没有该服务的副本。
发布于 2021-02-16 08:12:38
大多数情况下,我们将在浏览器存储或cookie中存储用户登录详细信息。
当您实际将用户浏览器存储在服务类中时,请尝试存储与用户相关的详细信息。
看看这里,了解有关浏览器存储和如何设置它们。
在上面的实现之后,尝试在应用程序组件加载时检查用户凭据,如果没有重定向到登录页面,则找到符合规则流程的go。
P.S:您需要对此进行一些设计更改来实现,就像您真的希望用户继续当前会话一样,或者需要他为新会话重定向登录页面。
https://stackoverflow.com/questions/66220408
复制相似问题