在使用vue-cropper工具过程当中遇到这样一个问题,开发环境启动运行之后,截图功能可以正常使用,但是重新打包部署至服务器以后,报错:cropper未定义。
TypeError: Cannot read properties of undefined (reading 'cropper')
at C (StepUpdate.9f3efc2b.js:1:29993)
at gr (@vue.1c4bc3aa.js:1:47798)
at vr (@vue.1c4bc3aa.js:1:47876)
at HTMLDivElement.n (@vue.1c4bc3aa.js:1:53453)
看到这个报错一开始的想法是 在代码
<vueCropper
ref="cropper"
></vueCropper>
这块的cropper未定义,所以去定义并给他赋值
const cropper = ref({})
cropper.value = currentInstance.value.ctx.$refs.cropper
然并卵。
之后想着在前端界面打个断点看看,结果就发现以下情况
结论:
报错原因并非因为上述 原因,归根结底是在Vue3中不能使用this后,我们使用了单独的一个变量通过getCurrentInstance()方法返回当前实例的对象,这会导致在开发环境执行的时候,使用
currentInstance.value.ctx.$refs.cropper.stopCrop();
可以正常执行,但是到了部署的环境,是未定义。使用以下方法去完成截图功能文章来源:https://www.toymoban.com/news/detail-403347.html
//开始裁剪
currentInstance.value.refs.cropper.startCrop();
//停止裁剪
currentInstance.value.refs.cropper.stopCrop();
所以关于Vue-cropper中提供的方法,都不能使用原先的那种格式,均需要使用文章来源地址https://www.toymoban.com/news/detail-403347.html
currentInstance.value.refs.cropper 替换 this.$refs.cropper
到了这里,关于Vue3.0使用vue-cropper遇到的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!