control:(val, form)=>{ console.log('val', val, form) if(form.rewardType == '') { return {} }else { if(form.rewardType == 3) { console.log('进入', form.rewardType) return { dicUrl: `/api/lyb-customer/prop/list?current=1&size=1000`, props: { label: "name", value: "id" }, dicFormatter(res) { console.log('res', res) } } } } }, 报错,报错为:Cannot convert undefined or null to object at Function.assign
时间: 2023-11-22 11:53:33 浏览: 29
这个报错可能是因为你的代码中有一个对象(Object)被赋值为 undefined 或 null,导致无法使用 Object.assign() 函数。你可以检查一下代码中的对象是否都有正确的赋值,或者使用条件语句来避免这个问题。比如:
```
control: (val, form) => {
console.log('val', val, form);
if (form.rewardType == '') {
return {};
} else {
if (form.rewardType == 3) {
console.log('进入', form.rewardType);
const result = {
dicUrl: `/api/lyb-customer/prop/list?current=1&size=1000`,
props: { label: "name", value: "id" },
dicFormatter(res) { console.log('res', res) }
};
return result || {}; // 添加这行代码来避免 undefined 或 null 直接传入 Object.assign()
}
}
},
```
这样,如果 `result` 对象是 undefined 或 null,就会返回一个空对象,避免了报错。
相关问题
baseData.value.orgName = ruleDetailList.value.forEach((it:any) =>{ console.log(it,options.val) if(it.udf3 === options.val) { console.log(it.udf11) return it.udf11 } })
这段代码的问题在于,`Array.forEach()` 方法返回值永远为 `undefined`,因此你无法将其赋值给 `baseData.value.orgName` 属性。因此,代码中的赋值语句实际上是将 `baseData.value.orgName` 赋值为 `undefined`。
如果你想在遍历 `ruleDetailList.value` 数组时查找 `udf3` 属性等于 `options.val` 的元素,并将其 `udf11` 属性的值赋给 `baseData.value.orgName` 属性,可以考虑使用 `Array.find()` 方法来实现:
```
const found = ruleDetailList.value.find(it => it.udf3 === options.val);
if (found) {
baseData.value.orgName = found.udf11;
} else {
baseData.value.orgName = '';
}
```
这段代码首先使用 `Array.find()` 方法查找 `ruleDetailList.value` 数组中第一个满足条件的元素,并将其赋值给 `found` 变量。如果找到了满足条件的元素,就将其 `udf11` 属性的值赋给 `baseData.value.orgName` 属性,否则将 `baseData.value.orgName` 赋值为空字符串。
const data = res.data.data; xunhuan.value[].data = data.filter(val => val.bftype === '1'); xunhuan.value[1].data = data.filter(val => val.bftype === '2'); xunhuan.value[2].data = data.filter(val => val.bftype === '3'); xunhuan.value[3].data = data.filter(val => val.bftype === '4');再把这段代码进行优化
这段代码可以进行优化,可以使用一个循环来遍历 bftype 的值,然后将对应的数据存储到 xunhuan.value 数组中。优化后的代码如下:
const data = res.data.data;
const xunhuan = { value: [] };
for (let i = 1; i <= 4; i++) {
xunhuan.value[i] = data.filter(val => val.bftype === i.toString());
}