问题背景:
在vue项目中使用 Elementui 的进度条组件 el-progress 时报错。
报错信息:
[Vue warn]: Invalid prop: custom validator check failed for prop "percentage".
found in
---> <ElProgress> at packages/progress/src/progress.vue
<ElPopover> at packages/popover/src/main.vue
<DownLoad> at src/views/myclouddisk/component/downLoad.vue
<MySpace> at src/views/myclouddisk/mySpace/index.vue
<VabRouterView> at node_modules/@z4aweb/z4aweb-frame/components/components/VabRouterView/index.vue
<VabAppMain> at node_modules/@z4aweb/z4aweb-frame/components/components/VabAppMain/index.vue
<VabLayoutColumn> at node_modules/@z4aweb/z4aweb-frame/components/layouts/VabLayoutColumn/index.vue
<LayoutBase> at node_modules/@z4aweb/z4aweb-frame/components/layouts/LayoutBase/index.vue
<App> at src/App.vue
<Root>
原因:
<el-progress :text-inside="true" :percentage="item.percentage" :color="colorObj[item.loadStatus]"></el-progress>
percentage 的值非法导致,percentage 只能为 0-100的数字,超过或者小于这个范围都会报错,通常percentage的值是由计算生成,我这里因为取值的undefined导致计算后的percentage值为NAN,所以报错
处理方案:
首先确保计算时,分子和分母的取值无误,不能为undefined或null等其他的,其次添加判断,当percentage值大于或小于0-100的范围时,重置为0-100合理范围的值。