我有一个使用React-Redux的TicTacToe应用程序。用户可以在应用程序中创建用户名和密码,然后登录-应用程序以这种方式跟踪用户的统计信息。我将react脚本更新为3.1.2,从那时起,我无法登录到我的应用程序。登录时出现以下错误:“超过最大更新深度。当组件重复调用componentWillUpdate或componentDidUpdate内部的setState时,可能会发生这种情况。React限制嵌套更新的数量以防止无限循环。”
问题出在我的身份验证操作文件的第42和66行中,该文件处理存储身份验证令牌(整个文件可在https://github.com/kmid5280/react-tictactoe-capstone/blob/master/src/actions/auth.js上查看):
39 | const storeAuthInfo = (authToken, dispatch) => {
40 | const decodedToken = jwtDecode(authToken);
41 | dispatch(setAuthToken(authToken));
> 42 | dispatch(authSuccess(decodedToken.user));
43 | saveAuthToken(authToken);
44 |
45 | };
65 | .then(res => normalizeResponseErrors(res))
66 | .then(res => res.json())
> 67 | .then(({authToken}) => storeAuthInfo(authToken, dispatch))
| ^ 68 | .catch(err => {
69 | const {code} = err;
70 | const message =
我认为这是一个无限的调度循环。我查看了其他一些讨论此问题的线程,但是仍然很难查明代码中出现了什么问题或循环发生的位置。
任何提示将不胜感激。谢谢!
编辑:循环发生后,控制台中将显示以下错误:
The above error occurred in the <Route> component:
in Route (at App.js:57)
in main (at App.js:53)
in div (at App.js:49)
in Router (created by BrowserRouter)
in BrowserRouter (at App.js:48)
in App (created by Connect(App))
in Connect(App) (at index.js:11)
in Provider (at index.js:10)