我是新来的。反应路由器有问题
错误:超过了最大更新深度。当组件重复调用组件内部的setState时,可能会发生这种情况。React限制嵌套更新的数量以防止无限循环。
索引.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>
)
}
routes.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>
)
}
所以,问题是:如果没有确切的路线,我就没有这个错误,但是当将确切的道具传递给Private ateRoute时,我的商店组件就不起作用了。
exact
prop将消除Route
的嵌套功能例如,您的主
路径是“/”
,因此,如果您像这样传递确切的
道具:
<PrivateRoute exact path='/' component={Main} />
然后,您不能在Main
中嵌套路由,例如/shop
,尽管您的shop组件嵌套在Main
中。
请确保在组件的生命圈内没有直接(无条件)改变道具或状态的位置。例如,直接在组件中使用 setStateDid更新
将导致无限循环。
早上好,我正在开发一个React应用程序,通过REST API与后端通信。 该应用程序体系结构还使用 React 路由器,并使用服务器提供并存储在中的 JWT 令牌实现身份验证功能。 基本上: 用户连接到应用程序 如果用户未登录,则重定向到登录页面 登录后,它会重定向到带有路径的主页,其中应该显示带有路径的组件和带有路径的组件(如果一个很好地理解React路由器的工作) 在启动应用程序时,用户被正
我有这个错误:错误:超过最大更新深度。当组件重复调用componentWillUpdate或componentDidUpdate内部的setState时,会发生这种情况。React限制嵌套更新的数量,以防止无限循环。 但是我不明白怎么解决!我只是在发布我的代码,对不起… 我的代码:
超过了最大更新深度。当组件重复调用组件WillUpdate或组件DidUpdate中的setState时,可能会发生这种情况。React限制嵌套更新的数量以防止无限循环。 这是bossinfo.js 这是user.redux.js 你为什么一直报告这个问题?这是指向错误的方向吗?寻求帮助
问题内容: 我试图在ReactJS中切换组件的状态,但出现错误: 超过最大更新深度。当组件重复调用componentWillUpdate或componentDidUpdate内部的setState时,可能会发生这种情况。React限制了嵌套更新的数量,以防止无限循环。 我在代码中看不到无限循环,有人可以帮忙吗? ReactJS组件代码: 问题答案: 那是因为您在render方法中调用了toggle
我在代码中没有看到无限循环,有人能帮忙吗? ReactJS组件代码:
在我的React应用程序中,我收到以下错误:“错误:超过了最大更新深度。当组件重复调用组件内部的setState时,可能会发生这种情况。React限制嵌套更新的数量,以防止无限循环”。一旦for循环完成,我就改变了状态。我不知道我做错了什么。任何帮助都将不胜感激。