Reactjs react中具有动态URL的专用路由
我在React中构建了一个PrivateRoute组件,它接受给定的组件,并在用户是否登录时呈现该组件Reactjs react中具有动态URL的专用路由,reactjs,routing,react-router,components,Reactjs,Routing,React Router,Components,我在React中构建了一个PrivateRoute组件,它接受给定的组件,并在用户是否登录时呈现该组件 export default function PrivateRoute({component: Component,...rest}) { return ( <SessionContext.Consumer > { (context) => { const {isLoggedIn} = context
export default function PrivateRoute({component: Component,...rest}) {
return (
<SessionContext.Consumer > {
(context) => {
const {isLoggedIn} = context
return (
<Route {...rest}
render = {
props =>
isLoggedIn ? (
<Component {...props} />
) : (
<Redirect to = "/login" / >
)
}
/>
)
}
}
</SessionContext.Consumer>
);
}
导出默认函数PrivateRoute({component:component,…rest}){
返回(
{
(上下文)=>{
const{isLoggedIn}=context
返回(
伊斯洛格丁?(
) : (
)
}
/>
)
}
}
);
}
现在在App.js中,我传递我的私有组件如下:
<PrivateRoute exact path="/dashboard" component={Dashboard} />
现在的问题是我想在url中传递一个参数。以下是我对管线组件所做的操作:
<Route path="/user/:user_id" render={(props) =>
<UserComponent user={props.match.params.user_id} />
} />
} />
不幸的是,当使用my PrivateRouter时,此语法不起作用
我尝试了其他几种方法,但我找不到在我的UserComponent中获取用户id的方法
我遗漏了什么吗?您的
PrivateRoute
使用了prop组件。但您可以通过渲染传递组件。如果我正确理解了您的问题。您的PrivateRoute
使用了prop组件。但您可以通过渲染传递组件。如果我没弄错你的问题