将中间件应用于React JS和Redux中的路由组

时间:2018-07-10 21:19:37

标签: reactjs redux middleware

我正在使用React JS和Redux开发一个Web应用程序。我几天前刚接触React。现在,我在使用中间件时遇到了一些麻烦。

我现在要执行的操作是实现一项功能,该功能可以在请求/路由之前检查用户是否已登录。如果未登录用户,我会将用户重定向到登录页面/注册页面。我正在使用这样的中间件。

function logger({getState}){
  return next => action => {
    let accessToken = localStorage.getItem('access_token');

    //if the accessToken is empty, user is not authenticated.
    if(accessToken)
    {
      return next(action);
    }
    else
    {
      //redirect to the login page.
    }
  }
}

const middleware = applyMiddleware(thunk, logger);
const store = createStore(portalApp, middleware);

上述代码的问题在于它适用于每条路线的每个请求。我不想将该中间件应用于登录和注册路由,因为无需访问用户即可登录到登录或注册页面。我想将该中间件应用于特定路由或避免使用特定路由。我该怎么做?还是有比在这种情况下使用中间件更好的方法?

0 个答案:

没有答案