zzdev
zzdev
  • 发布:2021-08-06 10:09
  • 更新:2024-08-13 18:17
  • 阅读:4756

uniapp 使用 vuedraggable^2.24.3 时的监听报错解决分享

分类:uni-app

原解决方案来源 使用vuedraggable时 ... "Cannot read property 'id' of null"

按照 j***@qq.com 评论的解决方案修改了文件后,vuedraggable 库重新 build 一下,但是这只能解决一时的问题,下次重新编译项目时又会被覆盖掉

解决:使用 patch-package 修复并保留对依赖库的修改

  1. 安装 yarn add patch-package postinstall-postinstall (patch-package 为主体,postinstall 可在项目编译时自动修复依赖)
  2. 项目的 package.json 的 scripts 中添加 "postinstall": "patch-package"
  3. 进入 node_modules/vuedraggable先安装下依赖,然后修改 vuedraggable.js 第 31 行
    function emit(evtName, evtData) {  
     this.$nextTick(() => this.$emit(evtName.toLowerCase(), {...evtData})); // <-  
    }  
  4. 执行 yarn build
  5. 删除 node_modules/vuedraggable 下的 node_modulesyarn.lock
  6. 项目根目录下执行 yarn patch-package vuedraggable,此时根目录下会多一个 patches 文件夹,里面有对依赖某个版本的修改记录
  7. 即可
2 关注 分享
是东山啊 自学的烦恼

要回复文章请先登录注册

zzdev

zzdev (作者)

回复 zzdev :
你可以的!
2021-12-23 16:51
zzdev

zzdev (作者)

2021-12-23 16:50
是东山啊

是东山啊

回复 zzdev :
感谢大佬,已经搞定
2021-12-23 16:26
zzdev

zzdev (作者)

回复 是东山啊 :
不影响, `npm i`
2021-12-23 16:16
是东山啊

是东山啊

回复 zzdev :
我用npm影响不
2021-12-23 16:14
zzdev

zzdev (作者)

回复 是东山啊 :
进入vuedraggable插件目录后有没有先 `yarn` 一下安装下依赖
2021-12-23 16:06
是东山啊

是东山啊

那个问题解决了,现在就是修改了那个数据类型之后也没有效果,不知道是什么原因,大佬知道不
2021-12-23 16:03
zzdev

zzdev (作者)

回复 是东山啊 :
啥,不应该呀,你用的 yarn 是 1.x 版本还是最新的版本
2021-12-23 15:54
是东山啊

是东山啊

大佬,我执行完第一步之后node_modules下就没有vuedraggable了
2021-12-23 13:52