uni-app schema2code生成uni-admin模板无法删除数据问题【已解决】#插件讨论# schema2code - DCloud前端团队
uni-app schema2code生成uni-admin模板无法删除数据问题【已解决】#插件讨论# schema2code - DCloud前端团队
疑似bug->批量操作及:
- schema[opendb-banner] 进行 schema2code to uni-admin(page模式或者moudle模式均已试过)
- 运行->内部浏览器(必须注意manifest.json 中Vue版本需配置为2,否则会导致方法 selectionChange(e) 失效,具体表现为this.selectedIndexs不能赋值,一直保持为[])
- 页面点击删除按钮,一直转等待图标.
- 页面选择多项,点击批量删除,一直转等待图标.
看大家有否遇到类似情况?或者有否解决方式?
后台报错记录
[system]TypeError: Cannot read property '0' of undefined
at VueComponent.mainCollection (http://localhost:8080/admin/static/js/pages-opendb-banner-list~pages-system-app-list~pages-system-menu-list~pages-system-permission-list~p~fedc02d9.js:267:27)
at Watcher.get (http://localhost:8080/admin/static/js/chunk-vendors.js:6088:25)
at Watcher.evaluate (http://localhost:8080/admin/static/js/chunk-vendors.js:6193:21)
at VueComponent.computedGetter [as mainCollection] (http://localhost:8080/admin/static/js/chunk-vendors.js:6443:17)
at VueComponent._execRemove (http://localhost:8080/admin/static/js/pages-opendb-banner-list~pages-system-app-list~pages-system-menu-list~pages-system-permission-list~p~fedc02d9.js:690:28)
at Function.success (http://localhost:8080/admin/static/js/pages-opendb-banner-list~pages-system-app-list~pages-system-menu-list~pages-system-permission-list~p~fedc02d9.js:483:18)
at http://localhost:8080/admin/static/js/chunk-vendors.js:14371:85306
at Object.j [as callback] (http://localhost:8080/admin/static/js/chunk-vendors.js:14371:88156)
at b (http://localhost:8080/admin/static/js/chunk-vendors.js:14371:88993)
at VueComponent.onModalCloseCallback (http://localhost:8080/admin/static/js/chunk-vendors.js:14371:20588)
更多关于uni-app schema2code生成uni-admin模板无法删除数据问题【已解决】#插件讨论# schema2code - DCloud前端团队的实战教程也可以访问 https://www.itying.com/category-93-b0.html
3 回复
谢谢HDX大大。 刚才已经更新后测试,恢复正常。谢谢。 后续看能否增加一个插件版本回退的功能。针对闭源插件的bug,能解燃眉之急。 望采纳。
这个问题是由于schema2code生成的uni-admin模板中mainCollection计算属性未正确处理数据导致的。从错误信息Cannot read property '0' of undefined可以看出,代码试图访问一个未定义数组的第一个元素。
解决方案:
-
检查schema配置:确保opendb-banner表的schema中
permission字段配置正确,特别是删除权限部分。 -
修改生成代码:在生成的列表页面中,找到
mainCollection计算属性,添加空值判断:
computed: {
mainCollection() {
// 添加空值判断
if (!this.collection || !this.collection.data) {
return []
}
return this.collection.data
}
}
- 检查删除方法:在
_execRemove方法中,确保在调用删除前验证数据有效性:
_execRemove(row) {
if (!row || !row._id) {
uni.showToast({ title: '数据异常', icon: 'none' })
return
}
// 原有删除逻辑
}


