vue-preview icon indicating copy to clipboard operation
vue-preview copied to clipboard

全局引用,两个组件内都引入标签,一个组件内的正常,另个组件内报错

Open codecatgo opened this issue 6 years ago • 2 comments

全局引用,两个组件内都引入标签,一个组件内的正常,另个组件内报错Cannot read property 'x' of undefined

codecatgo avatar Jul 10 '18 12:07 codecatgo

解决了吗。我也遇到这样 的问题

guxuehua avatar Aug 10 '18 09:08 guxuehua

产生报错的操作为点击缩略图,追踪堆栈后发现报错部分 Cannot read property 'x' of undefined

一级堆栈发生在PhotoSwipe的源码pageswipe.js:497 x = _mainScrollPos.x + delta * _options.mainScrollEndFriction; 其中_mainScrollPos来自_getEmptyPoint()

二级堆栈发生在pageswipe.js:2661 分析调用关系initialPanOffset->_panOffset ->_getEmptyPoint()

报错是由_mainScrollPos为undefined所致,而_getEmptyPoint函数只是返回一个简单对象{x:0,y:0},在无法推知执行先后顺序的情况下 只能推测_getEmptyPoint执行前被阻塞了

最后解决还是参考了PS的Issue#666Issue#1410Issue#1361(17年6月),作者提到了当传入图片参数没有w和h的情况下,就会报这个错,但是作者提到会在之后的版本加入默认的图片大小来处理这个问题,所以讲道理@LS1231 把(快1年前的)源码内的PS依赖版本更新一下应该就能解决。

我的情况:传入的数组图片参数里没有h,但是有w,会报这个错(试了一下只有h没有w则不会报错) 解决办法:computed里遍历数组的时候手动封装一下默认值的逻辑使得w、h必存在

onlunar avatar Feb 01 '19 22:02 onlunar