如何修复TypeError:无法读取未定义的属性?



我的UI崩溃了,我得到以下错误:

TypeError: Cannot read property 'filter' of undefined
at v (helper.js:16)
at i (lodash.min.js:9)
at t (lodash.min.js:59)
at value (CheckAll.js:15)

下面是helper.js的代码片段:

export const updatedChecked = (items, checked) => items.map(item => ({ ...item, checked }));
export const filterChecked = (items, checked) => items.filter(item => item.checked === checked);
export const moveAtTheTop = (items, itemIds) => pureReverse(itemIds).reduce((acc, v) => {
const toCutIndex = acc.findIndex(item => item.id === v);
const toCut = acc.splice(toCutIndex, 1)[0];
toCut.checked = true;
acc.unshift(toCut);
return acc;
}, updateChecked(items, false));
export const normalizeSrcItems = items => filterChecked(items, true).map(item => item.id);

这可能是因为您在调用normalizeSrcItems时在items参数中发送了undefined。你需要在你调用

的地方检查
if (items) {
normalizeSrcItems(items)
}

,或者检查为什么你有空项,也许你理解错了

显然,调用

items.filter(...)

items似乎没有定义。快速修复是:

(items || []).filter(...)

但它可能不能解决为什么项是未定义的问题。

最新更新