出现错误:`ReferenceError: Cannot access

节点 v:“10.14.1”

反应 v:“^16.9.0”

通过运行在本地更新一些包后npm update,我在启动我的 react 项目时开始收到此错误。


ReferenceError: Cannot access 'USER_LOGIN_PENDING' before initialization

Module.USER_LOGIN_PENDING

http://localhost:3300/static/js/main.chunk.js:28487:110

push../src/state/reducers/auth.js.__webpack_exports__.default

src/state/reducers/auth.js:23

  20 | 

  21 | export default (state = INITIAL_STATE, action) => {

  22 |   switch (action.type) {

> 23 |     case USER_LOGIN_PENDING:

  24 |       return { ...state, isLoading: true, showLoginError: false };

  25 |     case USER_LOGIN_SUCCESS:

  26 |       return {

有更多的堆栈帧,但这是最上面的。


我尝试npm install在删除 node_modules 和 package-lock.json 后恢复本地包并运行。运行没有错误。不知道为什么它突然开始给我这个错误。我的一个朋友把主人拉下来了,它与相同的版本完美配合。


这是应该引发错误的减速器文件:


import {

  USER_LOGIN_PENDING,

  USER_LOGIN_SUCCESS,

  USER_LOGIN_FAIL,

  NOT_LOGGED_IN,

  USER_LOGOUT_PENDING,

  USER_LOGOUT_SUCCESS

} from '../actions/auth';



export const INITIAL_STATE = {

  isLoading: false,

  isLoggedIn: false,

  showLoginError: false,

  loginError: null,

  access_token: null,

  refresh_token: null,

  expires_at: null

};


export default (state = INITIAL_STATE, action) => {

  switch (action.type) {

    case USER_LOGIN_PENDING:

      return { ...state, isLoading: true, showLoginError: false };

    case USER_LOGIN_SUCCESS:

      return {

        ...state,

        isLoading: false,

        showLoginError: false,

        isLoggedIn: true,

        access_token: action.data.access_token,

        expires_at: action.data.expires_at,

        refresh_token: action.data.refresh_token

      };

    case USER_LOGIN_FAIL:

      return {

        ...state, isLoading: false, showLoginError: true, loginError: action.payload

      };

  }

};

这是行动/身份验证以防万一。


月关宝盒
浏览 379回答 2
2回答

慕标琳琳

这个问题已经有 7 年历史了,但是当我遇到同样的问题时,我无论如何都会发布一个答案,即使它可能不再对你有帮助。在我们的例子中,这个错误是由循环导入引起的(模块 A 导入模块 B,模块 B 导入模块 C,模块 C 导入模块 A)。这一直有效,但在升级依赖项后就中断了。

慕斯709654

找出问题所在。原来事情已经被破坏了一段时间(自从我上次更新我的软件包以来),它们只是在我删除我的 node_modules 和 package-lock.json 并重新安装所有东西后才重新出现。我的罪魁祸首是“反应脚本”。将其降级到“2.1.5”版本后,一切都恢复了。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript