我在我的 reactjs 应用程序中使用受保护的路由,我想知道如何在受保护的路由中传递props,或者是否有更优雅的方法来解决我的问题。
我觉得需要在受保护的路由中传递props的原因是注销按钮位于受保护的组件内,我需要与包含所有路由的父组件进行通信,即用户试图注销.
这是相关的代码:
父组件:
render() {
const PrivateRoute = ({ component: Component, ...rest }) => (
<Route {...rest} render={(props) => (
isAuthenticated === true
? <Component {...props} /*I tried inserting handleLogout={this.handleLogout} here */ />
: <Redirect to="/Login"/>
)} />
)
return (
<HashRouter basename={BASE_URL}>
<div className="stories-module">
<PrivateRoute
exact
path={'/login'}
component={Login}
/>
<PrivateRoute
exact
path={'/Main/'}
component={Main}
/>
</HashRouter>
)};
不幸的是,我不知道我还能如何解决这个问题。
在路由组件中传递 props 被认为是不好的做法吗?如果是这样,我还能如何处理这个问题,如果不能,我该如何正确传递props?