场景
一般在vue2.x我们将在项目中使用它Vue DevTools帮助我们开发插件,但今天项目突然出现bug,调用vuex的dispatch方法时突然出现报错,如下:
TypeError: sub is not a function at eval (vuex.esm.js?2f62:422:1) at Array.forEach (<anonymous>) at Store.dispatch (vuex.esm.js?2f62:422:1) at Store.boundDispatch [as dispatch] (vuex.esm.js?2f62:332:1) at eval (list.vue?51fc:432:1)
发现原因是使用Vue DevTools插件的问题,因为我的浏览器现在安装了Vue DevTools2.x和3.x这个问题主要在于版本vue.2x在项目中使用Vue.js devtools 6.0.0 beta 15(3.x)由版本引起的。
后来发现不仅仅是调整vuex可能报错,页面之间跳转可能也会引发异常.
解决方法:
- 关闭或重启Vue.js devtools 6.0.0 beta 15(3.x)版本
- 在Vue 2在内置插件中添加开启设置 Legacy Actions
第一种方法有手,这里主要说第二种方法
在Vue 2在内置插件中添加开启设置 Legacy Actions
- 首先打开控制台找到自己vue然后点击右边的三个小点
- 下面的弹出窗口会出现,点击PascalCase,然后选择里面的 Devtools plugins
点击左边的vue2.右边的红框会出现东西,最后点击打开里面Legacy Actions按钮
注:我以前vue3.x版本用的是 devtools 6.0.0 beta 15发现没有第三步Legacy Actions按钮,所以我去仓库拉了一个新的3.x版本,所以有这个配置。(现在我用的是Vue.js devtools 6.1.4)