Reactjs 超过最大更新深度。当组件重复调用setstateinide(Jwt)Redux时,可能会发生这种情况
编译此代码时,我得到“超过最大更新深度。当组件在componentWillUpdate或componentDidUpdate内重复调用setState时,可能会发生这种情况。React限制嵌套更新的数量以防止无限循环。” //index.jsReactjs 超过最大更新深度。当组件重复调用setstateinide(Jwt)Redux时,可能会发生这种情况,reactjs,redux,jwt,Reactjs,Redux,Jwt,编译此代码时,我得到“超过最大更新深度。当组件在componentWillUpdate或componentDidUpdate内重复调用setState时,可能会发生这种情况。React限制嵌套更新的数量以防止无限循环。” //index.js 从“React”导入React; 从“react dom”导入react dom; 导入“./index.css”; 从“./App”导入应用程序; 将*作为serviceWorker从“/serviceWorker”导入; 从“./helpers”导入
从“React”导入React;
从“react dom”导入react dom;
导入“./index.css”;
从“./App”导入应用程序;
将*作为serviceWorker从“/serviceWorker”导入;
从“./helpers”导入{store};
从'react redux'导入{Provider};
从“/helpers”导入{configureFakeBackend};
configureFakeBackend();
ReactDOM.render(
,
document.getElementById('root');
serviceWorker.unregister()代码>老兄,很简单,你有这个代码
<Switch>
<PrivateRoute exact path="/" component={Dashboard} />
<PrivateRoute path="/boards/:id" component={Board} />
<PrivateRoute path="/boards" component={Boards} />
<PrivateRoute component={NoMatch} />
<Route path="/login" component={LoginPage} />
</Switch>
我认为有更好的方法使用调度,只是搜索
我希望它有用:D:D:D伙计,很简单,你有那个代码
<Switch>
<PrivateRoute exact path="/" component={Dashboard} />
<PrivateRoute path="/boards/:id" component={Board} />
<PrivateRoute path="/boards" component={Boards} />
<PrivateRoute component={NoMatch} />
<Route path="/login" component={LoginPage} />
</Switch>
我认为有更好的方法使用调度,只是搜索
我希望它有用:D:D:D好吧,您似乎并没有在您共享的代码中真正调用this.setState
,因此没有什么真正的建议。你能分享stacktrace吗?您是否根据安全令牌在某处更改位置?您是否有可能创建一个[mvce],以便我们重现错误?@Icepickle我添加了我的项目文件夹链接。您可以查看:)只需在登录时将路由移动到交换机顶部,并将“不匹配”移动到最后一个位置,这样就无需更改您希望对历史记录侦听器执行的任何操作,您仍然可以使用未知路由。好了,您似乎并没有在共享的代码中真正调用this.setState
,因此,没有什么真正的建议。你能分享stacktrace吗?您是否根据安全令牌在某处更改位置?您是否有可能创建一个[mvce],以便我们重现错误?@Icepickle我添加了我的项目文件夹链接。您可以查看:)只需在登录时将路由移动到交换机顶部,并将“不匹配”移动到最后一个位置,这样就无需更改您希望对历史侦听器执行的任何操作,并且您仍然可以拥有未知路由
<PrivateRoute path="blablabla" component={NoMatch} />
constructor(props){
super(props);
// history.listen((location, action) => {
// // clear alert on location change
// dispatch(alertActions.clear());
// });
}