如何使用 flash 消息 react-router 4 重定向
How to redirect with flash message react-router 4
这是我想要实现的目标:当用户试图访问我的 ReactJS 站点上的受保护页面时,我想将他们重定向到主页,并显示一条闪现消息 "Please log in" 或类似的内容.我如何使用 react-router v4 实现此目的?这是我目前所拥有的:
<Router>
<div>
<Switch>
<Route path="/" component={Home} />
<Route
exact path="/source" render={() => (
isAuthenticated() ? (
<Source />
) : (
<Home /> //I want to Redirect to the Home Page with a flash message if user is not logged in
)
)}
/>
<Route path="/contact" component={ContactUs} />
</Switch>
</div>
</Router>,
);
如何将登录的 属性 发送到 <Home>
组件,然后主组件可以查看该 属性 并在需要时呈现闪现消息:
exact path="/source" render={() => (
isAuthenticated() ? (
<Source />
) : (
<Home loggedIn={isAuthenticated} />
)
)}
以下是对我有用的方法:我使用了 react-router v4 附带的 Redirect 方法。它使您可以轻松实现这一目标。
<Route
exact path="/source" render={() => (
isAuthenticated() ? (
<Source />
) : (
<Redirect
to={{
pathname: '/',
state: 'Please sign in'
}}
/>
)
)}
/>
您可以在此处阅读有关重定向的更多信息:React Router v4 - Redirect
这是我想要实现的目标:当用户试图访问我的 ReactJS 站点上的受保护页面时,我想将他们重定向到主页,并显示一条闪现消息 "Please log in" 或类似的内容.我如何使用 react-router v4 实现此目的?这是我目前所拥有的:
<Router>
<div>
<Switch>
<Route path="/" component={Home} />
<Route
exact path="/source" render={() => (
isAuthenticated() ? (
<Source />
) : (
<Home /> //I want to Redirect to the Home Page with a flash message if user is not logged in
)
)}
/>
<Route path="/contact" component={ContactUs} />
</Switch>
</div>
</Router>,
);
如何将登录的 属性 发送到 <Home>
组件,然后主组件可以查看该 属性 并在需要时呈现闪现消息:
exact path="/source" render={() => (
isAuthenticated() ? (
<Source />
) : (
<Home loggedIn={isAuthenticated} />
)
)}
以下是对我有用的方法:我使用了 react-router v4 附带的 Redirect 方法。它使您可以轻松实现这一目标。
<Route
exact path="/source" render={() => (
isAuthenticated() ? (
<Source />
) : (
<Redirect
to={{
pathname: '/',
state: 'Please sign in'
}}
/>
)
)}
/>
您可以在此处阅读有关重定向的更多信息:React Router v4 - Redirect