Реагировать на метод рендеринга маршрутизатора с помощью HOC - PullRequest
0 голосов
/ 20 сентября 2019

Я пытаюсь реализовать эту логику в реагирующем маршрутизаторе (5.0.1).Это мой маршрут:

    <Route
      path="/available-days"
      render={props => isAdmin ? Auth(UserProfileView) : <Redirect to='/dashboard'/>}
      />

Когда idAdmin равен true, это вызывает ошибку: Objects are not valid as a React child.Я также попробовал это:

    <Route
      path="/available-days"
      render={props => isAdmin ? Auth(UserProfileView)({ ...props }) : <Redirect to='/dashboard'/>}
    />

Тогда я вижу TypeError: Object(...)(...) is not a function.Почему я просто не могу использовать HOC внутри метода рендеринга и как я могу заставить его работать?Кстати Auth(UserProfileView) отлично работает, если положить в компонентный метод.

1 Ответ

1 голос
/ 20 сентября 2019

Не используйте HOC внутри метода рендеринга, см. Здесь https://reactjs.org/docs/higher-order-components.html.

Вы можете попробовать

const UserProfileViewWithAuth = Auth (UserProfileView)

<Route
   path="/available-days"
   render={props => isAdmin ? <UserProfileViewWithAuth {...props} /> : <Redirect to='/dashboard'/>}
/>
...