使用react-router保护路由但需要对服务器的异步请求

时间:2018-04-07 06:56:50

标签: javascript reactjs authentication redux redux-thunk

要求:

如果用户已应用于作业,则将applied_job标志的标志传递给后端,然后将用户带到作业页面,如果applied_job标志为true,则阻止用户访问其他页面。即使用户刷新页面,如果applied_job标志为真,仍然会将用户重定向到作业页面。

问题是我使用更高阶函数或更高阶的组件来进行路径保护,我不知道如何调用api来获取标志。

const PrivateRoute = ({ component: Component, ...rest }) => (
    <Route {...rest} render={(props) => {
            return (
                true //assume this flag is from server, how to do an api call here??
          ? <Redirect to='/jobs' {...props} />
                    : <Component {...props} />
            )
    }} />
)

https://codesandbox.io/s/6rrlz3xpz

如果我在外面打电话,我应该在哪里打电话?我可以将标志存储在localstorage中,但如果是这样,用户可以从客户端删除它,这也是不对的。

0 个答案:

没有答案