最近在做微信公众号开发,需要用到微信的扫码功能,所以集成了相应的功能及相应的JS文件后,点击调用一直报这个问题:
Error in v-on handler: "TypeError: _.mapObject is not a function"
首先怀疑是使用到的_变量没有引入进来,引入后还是在报同样的错误。
在浏览器中打断点调试,发现当加载这个方法的时候,_这个变量指向了lodash.js而不是我需要引用的underscore-min.js文件,所以报方法找不到。
像我们平时引入的第三方库,很多很喜欢用下划线或者通过打包后,就会将原有变量改为符号,而造成引用的多个包之间变量发生冲突。
下面说解决方法:
我是引用了lodash.js和underscore-min.js两个文件后,这两个文件中的变量名冲突了,所以只需要在main.js(或者界面加载之处)增加以下一句代码即可解决:
window.lodash = _.noConflict();
如果你是因为其他文件冲突,可以将lodash换成相应引用名称即可。问题完美解决。