Я новичок в React. Возникли проблемы с реакции-маршрутизатором
Ошибка: превышена максимальная глубина обновления. Это может произойти, когда компонент повторно вызывает setState внутри componentWillUpdate или componentDidUpdate. React ограничивает количество вложенных обновлений для предотвращения бесконечных циклов.
Index.tsx
<PrivateRoute path='/' component={Main} /> //without exact
<Route path='/signin' component={SignIn} />
PrivateRoute.tsx:
export const PrivateRoute = ({ component: Component, ...rest }) => (
<Route
{...rest}
render={props =>
localStorage.getItem('authToken') ? (
<Component {...props} />
) : (
<Redirect
to={{ pathname: '/signin', state: { from: props.location } }}
/>
)
}
/>
)
Main.tsx:
const Main: FC = () => {
return (
<App>
<Switch>
{routes.map(route => (
<Route
key={route.path}
path={route.path}
exact={route.exact}
component={route.component}
/>
))}
</Switch>
</App>
)
}
rout.tsx:
export const routes = [
{
path: '/shop',
key: 'market',
component: props => (
<LazyLoad
component={React.lazy(() => import('./modules/shop/pages/Shop'))}
{...props}
/>
),
},
{
path: '/',
exact: true,
component: () => <div>main</div>,
skip: true,
},
]
App.tsx:
const App: FC<AppProps> = ({ children }) => {
const classes = useStyles()
const sidebarToggle = useState(false) // recommended: collapsed, setCollapsed
return (
<div className={classes.wrapper}>
<SidebarContext.Provider value={sidebarToggle}>
<Sidebar />
<main className={classes.main}>
<section className={classes.routeWrapper}>
<Nav />
<div className={classes.route}>{children}</div>
</section>
</main>
</SidebarContext.Provider>
</div>
)
}
Итак, проблема в том, что без точного маршрута у меня нет этой ошибки , но при передаче точного реквизита в PrivateRoute, мой компонент магазина не работает