v-viewer icon indicating copy to clipboard operation
v-viewer copied to clipboard

组件形式使用,重新npm install 之后就不能预览了

Open Echochan opened this issue 3 years ago • 13 comments

对比了一下前后的区别, v-viewer的版本都是1.5.1, viewer.js从1.6.0变成了1.6.2, 使用组件形式前者可以正常预览,重新安装依赖之后无法正常预览

Echochan avatar Sep 02 '20 07:09 Echochan

在我本地试了下无法复现啊,v-viewer 1.5.1, viewerjs 1.6.2,组件形式 有错误信息吗?

mirari avatar Sep 02 '20 07:09 mirari

我也遇到了同样的问题,没有任何报错,就是无法预览

dongongfeiyu avatar Sep 12 '20 09:09 dongongfeiyu

同样问题,没任何报错,v-viewer版本是1.5.1 修改options里的url好像也没用 原本是异步修改images的方式都能预览图片 这几天再看就连使用绝对路径的图片都不行了

表现是有navbar里的图,但navbar里的图没计算定位,是居左显示,viewer-canvas里没图,并且所有按钮不可用

bloodly avatar Oct 20 '20 01:10 bloodly

viewerjs版本是什么?我昨天刚试过v-viewer 1.5.1, viewerjs 1.7.1组件形式没有问题啊 在线例子只会请求最新版本,我这里试了下都正常,看看是不是配置或者浏览器环境问题 直接引用脚本 https://codepen.io/mirari/pen/PowNyEY npm安装 https://codesandbox.io/s/v-viewer-component-40xrn

mirari avatar Oct 20 '20 05:10 mirari

viewerjs版本是什么?我昨天刚试过v-viewer 1.5.1, viewerjs 1.7.1组件形式没有问题啊 在线例子只会请求最新版本,我这里试了下都正常,看看是不是配置或者浏览器环境问题 直接引用脚本 https://codepen.io/mirari/pen/PowNyEY npm安装 https://codesandbox.io/s/v-viewer-component-40xrn

用的是和 https://codesandbox.io/s/v-viewer-component-40xrn 完全一致的方法 甚至暂时将原本的异步base64图片也替换成了示例里的url图片 viewer是1.7.1 viewer-container能渲染出来但是是.viewer-hide状态,按钮全部不可用,也显示不出图片

20201020162501 点击按钮后 QQ图片20201020162228

bloodly avatar Oct 20 '20 08:10 bloodly

viewerjs版本是什么?我昨天刚试过v-viewer 1.5.1, viewerjs 1.7.1组件形式没有问题啊 在线例子只会请求最新版本,我这里试了下都正常,看看是不是配置或者浏览器环境问题 直接引用脚本 https://codepen.io/mirari/pen/PowNyEY npm安装 https://codesandbox.io/s/v-viewer-component-40xrn

用的是和 https://codesandbox.io/s/v-viewer-component-40xrn 完全一致的方法 甚至暂时将原本的异步base64图片也替换成了示例里的url图片 viewer是1.7.1 viewer-container能渲染出来但是是.viewer-hide状态,按钮全部不可用,也显示不出图片

20201020162501 点击按钮后 QQ图片20201020162228

用我的在线例子改一个你现在的代码上去看能不能复现吧,看下是不是异步刷新的问题 images变动后不能立刻执行show,这时候viewer还没刷新

mirari avatar Oct 20 '20 09:10 mirari

viewerjs版本是什么?我昨天刚试过v-viewer 1.5.1, viewerjs 1.7.1组件形式没有问题啊 在线例子只会请求最新版本,我这里试了下都正常,看看是不是配置或者浏览器环境问题 直接引用脚本 https://codepen.io/mirari/pen/PowNyEY npm安装 https://codesandbox.io/s/v-viewer-component-40xrn

用的是和 https://codesandbox.io/s/v-viewer-component-40xrn 完全一致的方法 甚至暂时将原本的异步base64图片也替换成了示例里的url图片 viewer是1.7.1 viewer-container能渲染出来但是是.viewer-hide状态,按钮全部不可用,也显示不出图片 20201020162501 点击按钮后 QQ图片20201020162228

用我的在线例子改一个你现在的代码上去看能不能复现吧,看下是不是异步刷新的问题 images变动后不能立刻执行show,这时候viewer还没刷新

在你在线例子上用了setTimeout模拟异步请求,是正常的,应该不是异步的问题

纯静态的方式试了下,还是只弹出视图框但没有图片,所有按钮也不可用 chrome85.0.4183.102-32位 vue2.6.12 用了edge效果还是一致

bloodly avatar Oct 20 '20 09:10 bloodly

viewerjs版本是什么?我昨天刚试过v-viewer 1.5.1, viewerjs 1.7.1组件形式没有问题啊 在线例子只会请求最新版本,我这里试了下都正常,看看是不是配置或者浏览器环境问题 直接引用脚本 https://codepen.io/mirari/pen/PowNyEY npm安装 https://codesandbox.io/s/v-viewer-component-40xrn

用的是和 https://codesandbox.io/s/v-viewer-component-40xrn 完全一致的方法 甚至暂时将原本的异步base64图片也替换成了示例里的url图片 viewer是1.7.1 viewer-container能渲染出来但是是.viewer-hide状态,按钮全部不可用,也显示不出图片 20201020162501 点击按钮后 QQ图片20201020162228

用我的在线例子改一个你现在的代码上去看能不能复现吧,看下是不是异步刷新的问题 images变动后不能立刻执行show,这时候viewer还没刷新

在你在线例子上用了setTimeout模拟异步请求,是正常的,应该不是异步的问题

纯静态的方式试了下,还是只弹出视图框但没有图片,所有按钮也不可用 chrome85.0.4183.102-32位 vue2.6.12 用了edge效果还是一致

我的意思是可能是你执行show的时机不对,跟images的值是否异步获取没有关系。 images修改以后,此时viewer还没有刷新,要等下一个tick才会执行update方法,过早show只会显示上一次空白数组的内容。

我想看你的那个watch images的回调是如何写的

mirari avatar Oct 20 '20 12:10 mirari

viewerjs版本是什么?我昨天刚试过v-viewer 1.5.1, viewerjs 1.7.1组件形式没有问题啊 在线例子只会请求最新版本,我这里试了下都正常,看看是不是配置或者浏览器环境问题 直接引用脚本 https://codepen.io/mirari/pen/PowNyEY npm安装 https://codesandbox.io/s/v-viewer-component-40xrn

用的是和 https://codesandbox.io/s/v-viewer-component-40xrn 完全一致的方法 甚至暂时将原本的异步base64图片也替换成了示例里的url图片 viewer是1.7.1 viewer-container能渲染出来但是是.viewer-hide状态,按钮全部不可用,也显示不出图片 20201020162501 点击按钮后 QQ图片20201020162228

用我的在线例子改一个你现在的代码上去看能不能复现吧,看下是不是异步刷新的问题 images变动后不能立刻执行show,这时候viewer还没刷新

在你在线例子上用了setTimeout模拟异步请求,是正常的,应该不是异步的问题 纯静态的方式试了下,还是只弹出视图框但没有图片,所有按钮也不可用 chrome85.0.4183.102-32位 vue2.6.12 用了edge效果还是一致

我的意思是可能是你执行show的时机不对,跟images的值是否异步获取没有关系。 images修改以后,此时viewer还没有刷新,要等下一个tick才会执行update方法,过早show只会显示上一次空白数组的内容。

我想看你的那个watch images的回调是如何写的

是在tick里执行的

20201021085745

20201021085711

images里数据感觉都已经准备好了

20201021090716

最终渲染出来的是这样,表现就还是一个没有图的预览框,按钮不可点 20201021085845

bloodly avatar Oct 21 '20 01:10 bloodly

viewerjs版本是什么?我昨天刚试过v-viewer 1.5.1, viewerjs 1.7.1组件形式没有问题啊 在线例子只会请求最新版本,我这里试了下都正常,看看是不是配置或者浏览器环境问题 直接引用脚本 https://codepen.io/mirari/pen/PowNyEY npm安装 https://codesandbox.io/s/v-viewer-component-40xrn

用的是和 https://codesandbox.io/s/v-viewer-component-40xrn 完全一致的方法 甚至暂时将原本的异步base64图片也替换成了示例里的url图片 viewer是1.7.1 viewer-container能渲染出来但是是.viewer-hide状态,按钮全部不可用,也显示不出图片 20201020162501 点击按钮后 QQ图片20201020162228

用我的在线例子改一个你现在的代码上去看能不能复现吧,看下是不是异步刷新的问题 images变动后不能立刻执行show,这时候viewer还没刷新

在你在线例子上用了setTimeout模拟异步请求,是正常的,应该不是异步的问题 纯静态的方式试了下,还是只弹出视图框但没有图片,所有按钮也不可用 chrome85.0.4183.102-32位 vue2.6.12 用了edge效果还是一致

我的意思是可能是你执行show的时机不对,跟images的值是否异步获取没有关系。 images修改以后,此时viewer还没有刷新,要等下一个tick才会执行update方法,过早show只会显示上一次空白数组的内容。 我想看你的那个watch images的回调是如何写的

是在tick里执行的

20201021085745

20201021085711

images里数据感觉都已经准备好了

20201021090716

最终渲染出来的是这样,表现就还是一个没有图的预览框,按钮不可点 20201021085845

只nextTick一次是不够的,因为viewer更新就是在这个nextTick后才进行。 你需要在inited回调里执行show操作,或者等待两个tick,虽然这样做不太好看

mirari avatar Oct 21 '20 03:10 mirari

有点奇怪,把本地依赖删干净重新安装之后,问题自己又好了,代码原封不动

bloodly avatar Oct 23 '20 03:10 bloodly

有点难定位问题所在 一开始以为是node版本,然后从10升到了12 升级过程中删除了所有依赖包 重新安装 运行之后问题就自我修复了

但同事那node10就还是正常能预览

目前猜侧是之前依赖包里有问题

但重装node前无论怎么删除项目本地的依赖包再重装,都是有问题的

bloodly avatar Oct 23 '20 03:10 bloodly

应该是组件依赖的viewer.js 版本变高导致的,希望作者能把依赖的viewer.js 版本写死,目前看来1.5.0是可以正常工作的。 我是在依赖里面写死了版本依赖 1、 "v-viewer": "1.5.1", "viewerjs": "1.5.0", 安装相关依赖 2、 删除项目所在目录 node_modules/v-viewer/node_modules 下面的viewerjs

netvempive avatar Nov 13 '20 08:11 netvempive