Реакция. js: Как получить доступ к параметрам URL в приватном маршруте - PullRequest
1 голос
/ 09 апреля 2020

Я решил создать несколько частных маршрутов, к которым могут обращаться только зарегистрированные пользователи, но наткнулся на проблему, когда я не знаю, как отправлять параметры URL (идентификатор статьи). Я сделал это по "нормальному" маршруту, но теперь я застрял. Вот мой метод рендеринга:

 render() {
let auth = store.getState().auth.isAuth;
return (
  <Fragment>
    <Header />
    <Route path="/" exact={true} component={HomePage} />
    <Route path="/articles/:id" component={ArticleSinglePage} />
    <ProtectedRoute auth={auth} path="/profile/:id/articles" component={MyArticles} />
    <ProtectedRoute path="/edit/:id/" component={EditArticle} />
    <ProtectedRoute path="/writeArticle" component={WriteArticle} />
  </Fragment>
);

}

Вот мой компонент ProtectedRoute:

const ProtectedRoute = ({auth, component:Component, match, ...rest}) => {
  return (
    <Route {...rest}
    render = { () => auth ? (<Component/>) : <Redirect to="/"/>} />
  )
}

1 Ответ

0 голосов
/ 09 апреля 2020

Я мог бы попытаться передать match в качестве реквизита Component: <Component match={match} />.

Итак, ProtectedRoute становится:

const ProtectedRoute = ({auth, component:Component, match, ...rest}) => {
  return (
    <Route {...rest}
    render = { () => auth ? (<Component match={match}/>) : <Redirect to="/"/>} />
  )
}
...