Я создал компонент PrivateRoute в React, который берет данный компонент и отображает его, если пользователь вошел в систему или нет.
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>
);
}
Сейчас в приложении. js Я передаю свой закрытый компонент как это:
<PrivateRoute exact path="/dashboard" component={Dashboard} />
Теперь проблема в том, когда я хочу передать параметр в URL. Вот как я делаю для компонента Route:
<Route path="/user/:user_id" render={(props) =>
<UserComponent user={props.match.params.user_id} />
} />
Этот синтаксис, к сожалению, не работает при использовании моего PrivateRouter.
Я пробовал несколько других подходов, но не могу найти способ получить user_id в моем UserComponent.
Я что-то упустил?