uni-app 使用schema2一键生成功能会导致前端报错 "maximum": 100,"minimum": 1
uni-app 使用schema2一键生成功能会导致前端报错 “maximum”: 100,“minimum”: 1
操作步骤:
"maximum": 100,"minimum": 1 删除两个 任意就没报错
预期结果:
Error in onReady hook: TypeError: Cannot read properties of undefined (reading 'loadData')
/pages/admin_userFission_config/list
17:35:18 百度谷歌
Error in render: TypeError: Cannot read properties of undefined (reading 'length')
/pages/admin_userFission_config/list
17:35:18 百度谷歌
Error in data(): ReferenceError: numberRange is not defined
/pages/admin_userFission_config/add
17:35:18 百度谷歌
实际结果:
Error in onReady hook: TypeError: Cannot read properties of undefined (reading 'loadData')
/pages/admin_userFission_config/list
17:35:18 百度谷歌
Error in render: TypeError: Cannot read properties of undefined (reading 'length')
/pages/admin_userFission_config/list
17:35:18 百度谷歌
Error in data(): ReferenceError: numberRange is not defined
/pages/admin_userFission_config/add
17:35:18 百度谷歌
bug描述:
使用schema2一键生成会导致前端报错 “maximum”: 100,“minimum”: 1
提供下生成后的vue页面代码
我也发现了这个问题,好像minimum和maximum就不能共存一样
在使用 uni-app 的 schema2code
一键生成功能时,如果遇到前端报错 "maximum": 100, "minimum": 1
,这通常是因为在生成的表单校验规则中,某个字段的数值范围限制为 1
到 100
,而输入的值超出了这个范围。
解决方法:
-
检查生成的 schema 文件:
- 打开生成的
schema
文件,查找相关字段的minimum
和maximum
配置。 - 确保这些配置符合实际需求。
- 打开生成的
-
修改 schema 配置:
- 如果默认的
1
到100
范围不符合实际需求,可以手动修改schema
文件中的minimum
和maximum
值。 - 例如,如果需要更大的范围,可以将
maximum
修改为更大的值,或者将minimum
修改为更小的值。
- 如果默认的
-
前端表单校验处理:
- 如果不想修改
schema
文件,可以在前端表单提交时,手动处理校验逻辑,确保输入的值在1
到100
之间。 - 或者在前端代码中动态修改校验规则。
- 如果不想修改
-
调试和日志:
- 使用浏览器开发者工具或 uni-app 的调试工具,查看具体的报错信息和堆栈,确认是哪个字段引发了错误。
- 检查表单输入的值是否符合
schema
的校验规则。
示例:
假设 schema
文件中有一个字段 age
,其配置如下:
{
"age": {
"type": "number",
"minimum": 1,
"maximum": 100
}
}
如果前端输入的值超出了 1
到 100
的范围,就会报错。你可以根据需要修改 schema
:
{
"age": {
"type": "number",
"minimum": 0,
"maximum": 120
}
}
或者在前端代码中动态修改校验规则:
this.$refs.form.setRules({
age: [
{ required: true, message: '年龄不能为空' },
{ type: 'number', min: 0, max: 120, message: '年龄必须在0到120之间' }
]
});