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

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 关注 分享
是东山啊 自学的烦恼

要回复文章请先登录注册

1***@qq.com

1***@qq.com

Error in nextTick: "TypeError: Invalid attempt to spread non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method. 又报这错误了
2024-08-13 18:17
2***@qq.com

2***@qq.com

回复 4***@qq.com :
大佬, 可以看看demo吗
2024-07-09 11:58
4***@qq.com

4***@qq.com

我实现了APP端和 H5端的 各种兼容报错 APP端完美运行 小程序端未测试 大概率没问题
Cannot read property 'id' of null" 已解决
Cannot read property 'nid' of undefined at view.umd.min.js:1 已解决
2024-01-22 09:57
1***@qq.com

1***@qq.com

uniapp中没有package.json文件
2023-07-05 16:11
r***@163.com

r***@163.com

回复 2***@qq.com :
我也是,请问该怎么解决
2023-02-04 08:55
s***@qiyedaohr.com

s***@qiyedaohr.com

回复 2***@qq.com :
我也报同样的错误,跟了好久没跟出来,你解决了么
2022-09-08 13:57
2***@qq.com

2***@qq.com

这个方法试完了之后,报错这个
Cannot read property 'nid' of undefined at view.umd.min.js:1
2022-08-02 11:19
猪肉丸

猪肉丸

看这篇文章,已完美解决,无需每次打开项目时,重新build
地址:https://ask.dcloud.net.cn/question/144791?item_id=197983
[点击查看](https://ask.dcloud.net.cn/question/144791?item_id=197983)
2022-05-10 16:34
zzdev

zzdev (作者)

回复 summer59423 :
抱歉才看到,vuedraggable是2.24.3版本吗,我当时环境是vue2,目前uniapp已经支持vue3,patch-package也更新了版本和使用方法,不知道会不会因为这些而造成其他错误,还请多尝试下
2022-04-24 10:11
summer59423

summer59423

TypeError: undefined is not an object (evaluating 'this.$el.nodeName.toLowerCase') __ERROR
TypeError: undefined is not an object (evaluating 'n.options.nid'),

好像还是不行,原本是t.id报undefined,现在变成这两个了。有没有人可以指点我一下?
2022-04-03 20:17