在第47章的操作中,涉及到分类的添加、删除和更新功能,但发现uni-popup组件存在bug。该组件的函数接口错误导致在小程序中出现以下问题:1. 点击修改肉类名称时,回调显示为空,并报错"setVal is not defined",在H5和微信开发工具中均出现此问题,但H5中能显示肉类名称;2. 点击新增时,出现与现象1相同的错误。通过解析日志,发现错误是由于setVal函数未定义导致的。经过修改,在该文件中明确定义setVal函数,问题得以解决。这表明uni-popup组件在回调处理上存在缺陷,需修复以确保功能正常运行。官方还需进一步优化uniapp,提升其稳定性和功能性。
1、现象
1.1、第一个
这里点击修改肉 的名称 ,但是回调显示到popup上,为空。如下图,并报错。
无论是在h5 web 还是微信开发工具都报错,在微信开发工具,上还不能将点击的 肉 显示。
在h5 web 能显示 肉 。
[Vue warn]: Error in callback for watcher "value": "ReferenceError: setVal is not defined"
found in
---> <UniPopupDialog> at uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue
<UniPopup> at uni_modules/uni-popup/components/uni-popup/uni-popup.vue
pages_manage/category/category.vue

1.2、第二个
点击新增时,也会和1的现象一样。报同样的错。

2、通过解析读取日志分析
Error in callback for watcher "value": "ReferenceError: setVal is not defined",表示是有一个值setval没有被定义。
提示是在
<UniPopupDialog> at uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue
以及:
<UniTransition> at uni_modules/uni-transition/components/uni-transition/uni-transition.vue
3、找到该vue文件
发现该文件中,setval 没有明确定义或表明是来自于哪里。导致警告。并影响在另外的平台执行。

4、进行修改
在该文件中,方法这里就定义了setval函数,这里就改写为this.setval就好。

再次执行,问题解决。soeasy,看起官方还要加油,uniapp还需做大做强。