Reactjs 在传递值时响应Redux重定向

Reactjs 在传递值时响应Redux重定向,reactjs,redux,react-router,react-redux,Reactjs,Redux,React Router,React Redux,我正在为一个应用程序使用React+Redux+React路由器。我的初始页面是一个登录屏幕,一旦身份验证成功,我希望在传递从身份验证检索到的令牌时重定向到另一个页面。我正在研究这个SO问题,但没有说明如何将值传递到新页面: 我正在考虑采纳Dan的建议,在action creator中粘贴重定向(用于成功登录),但不确定如何将令牌传递回。这是我的行动创造者: export const loginSucceeded = token => { browserHistory.push('

我正在为一个应用程序使用React+Redux+React路由器。我的初始页面是一个登录屏幕,一旦身份验证成功,我希望在传递从身份验证检索到的令牌时重定向到另一个页面。我正在研究这个SO问题,但没有说明如何将值传递到新页面:

我正在考虑采纳Dan的建议,在action creator中粘贴重定向(用于成功登录),但不确定如何将令牌传递回。这是我的行动创造者:

export const loginSucceeded = token => {
    browserHistory.push('/dashboard')
}
我建议使用。它带有
推送
替换
操作,因此您可以
登录成功
操作创建者中调度
操作。这是一种处理路由更改的更干净的方法,您将在redux开发工具中看到正确的操作。在
localStorage

假设您使用中间件:

export const loginSucceeded = token => {
  return dispatch => {
    localStorage.setItem('token', token);
    dispatch(push('/dashboard'));
  };
};

使用react router 4,您可以尝试以下操作:

import { Route, Redirect } from 'react-router-dom';

export const loginSucceeded = token => {
    <Redirect push to={{
        pathname: '/dashboard',
        state: { token: token }
    }}/>
}
从'react router dom'导入{Route,Redirect};
export const loginsucseed=token=>{
}
稍后,可以通过仪表板页面的
this.props.location.state.token
访问此令牌


我建议将令牌存储在
localStorage
中。然后它将可以在任何地方访问,并在页面刷新后保留。但是您当然可以为您的令牌创建一个reducer,并通过
connect
@azium访问它。保存在
localStorage
中处理页面刷新不是更好吗?如果
localStorage
标记为空,则请求身份验证。是的,它也必须使用reducer,其他任何地方都可以通过reducer访问令牌。因此,它可能是您的两个评论的组合:)