Reactjs react中具有动态URL的专用路由

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

我在React中构建了一个PrivateRoute组件,它接受给定的组件,并在用户是否登录时呈现该组件

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
组件。但您可以通过
渲染
传递组件。如果我没弄错你的问题