如果我boolean從過濾器回傳有什么問題沒關系我從 eslint得到一個錯誤- >
Array.prototype.filter() 期望在箭頭函式結束時回傳一個值
代碼示例 ->
let filteredData = useMemo(() => {
let childIds = [];
let parentIds = [];
if (customSearch || !searchQuery) {
return data;
} else {
//finding childIds and pushing in childIds
for (let item of data) {
if (
item[labelKey] &&
item[labelKey].toString().toLowerCase().includes(searchQuery.toString().toLowerCase())
) {
if (item.childId) childIds.push(item.childId);
if (item.parentId) parentIds.push(item.parentId);
}
}
//returning only groupsIds that not match in childIds
parentIds = parentIds.filter((e) => !(childIds.indexOf(e) >= 0));
return data.filter((item) => {
//return groupParents of items that match
for (let i of childIds) {
if (item.parentId && item.parentId === i) return true;
}
//return all group that match only group title
for (let i of parentIds) {
if (item.parentId === i || item.childId === i) return true;
}
if (
item[labelKey] &&
item[labelKey].toString().toLowerCase().includes(searchQuery.toString().toLowerCase()) &&
!item.parentId
) {
return true;
}
});
}
}, [data, labelKey, searchQuery, customSearch, options]);
你覺得怎么了
uj5u.com熱心網友回復:
Array.prototype.filter() 期望在箭頭函式結束時回傳一個值
您的過濾器函式中有三個,但如果這些條件都不滿足if's,仍然缺少要回傳的回退值。
如果這些條件都不成立,只需添加一些后備回傳(在關閉回呼函式之前)。
return data.filter((item) => {
for (let i of childIds) {
if (item.parentId && item.parentId === i) return true;
}
for (let i of parentIds) {
if (item.parentId === i || item.childId === i) return true;
}
if (
item[labelKey] &&
item[labelKey].toString().toLowerCase().includes(searchQuery.toString().toLowerCase()) &&
!item.parentId
) {
return true;
}
return true; // fallback (or false)
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/535834.html
