Я рефакторинг кода, чтобы быть СУХОЙ, используя Resact-App-Link для обработки маршрутов.Большинство моих маршрутов защищены, и у меня возникают проблемы с защитой моих маршрутов при использовании MyLocation.toRoute ().
Я успешно создал незащищенные маршруты.Но при попытке защитить маршрут я получаю много загадочных сообщений об ошибках.К сожалению, документация ract-app-link не слишком обширна для опции рендеринга.
//Link object
const wholeNbr = Yup.number().integer().positive()
const MyLocation = new Location('/doc/:id', {id : wholeNbr.required()})
//Unprotected route - Working code:
{ MyLocation.toRoute({ component: MyComponent, invalid: NotFoundPage }, true) }
//Protected route - Not working:
const privateLocation = (isAuthenticated, Component) => (
isAuthenticated ?
(
<Component />
):(
<Redirect to="/" /> //redirect to login page
)
)
...
<Router history={history}>
...
<Switch>
...
{ CategoryLocation.toRoute({ render: privateLocation(isAuthenticated, MyComponent), invalid: NotFoundPage }, true) }
...
</Switch>
</Router>
Я ожидаю, что компонент будет отображаться, но получаю сообщение об ошибке "Ошибка типа: _render не является функцией"