React-Redux:登录时可能发生无限调度(在将React脚本升级到3.1.2之后启动)

时间:2019-01-13 19:07:18

标签: reactjs redux

我有一个使用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)

0 个答案:

没有答案