我使用react-router v4和redux。我设法用我的api服务器实现登录。目前,如果未经过身份验证,我将实施重定向。
为此,我创建了一个组件<AuthOnlyRoute>
,如果用户没有登录,它基本上会返回<Redirect>
组件。我保留&#34;来自&#34;页面到稍后,当用户登录时返回。
<Redirect
to={{
pathname: '/login',
state: {
from: {
...otherProps.location, // this is an object where the pathname is kept
message: 'please, log in', // message to show to the user
},
},
}}
/>
如果我尝试输入<AuthOnlyRoute>
然后登录,这就像魅力一样。当我在用户登录时渲染另一个<Redirect>
时,我会被重定向到我的原始路线。我在<GuestOnlyRoute>
中执行此操作,如果用户已经登录,则会重定向。
但是,因为在服务器端我使用<StaticRouter>
没有历史记录(我想这是我的问题的根源,但不是很确定)并且当我直接请求需要的路径时auth,服务器正确地重定向到/login
,但location
对象没有from
属性。因此,我不知道用户登录时的重定向位置。
我该如何解决这个问题?如何从服务器填充此location
对象?
提前致谢