我正在使用過濾器方法從選項串列中獲取選定的專案。但它給了我以下錯誤:
Array.prototype.filter() 期望在箭頭 function.eslintarray-callback-return 的末尾回傳一個值
我的功能如下:
const getSelectValue = () => {
const selectedList = get(state, `${name}`, []);
if (isEmpty(selectedList) || isEmpty(options)) {
return [];
}
const selectedSet = new Set(selectedList);
return options.filter((item) => {
if (item.value !== "Add type") return selectedSet.has(item.value);
});
};
誰能在這里發現丟失的東西?
uj5u.com熱心網友回復:
作為過濾器回呼提供的箭頭函式應始終通過此 linting 規則回傳一些值。但在這兒...
item => {
if(item.value !=="Add type") {
return selectedSet.has(item.value);
}
);
...如果條件為假,則沒有return陳述句;if因此錯誤。您可以通過多種不同方式解決此問題;最直接的一種是return false;在函式末尾添加顯式。另一種方法是結合兩個條件:
item => {
return item.value !=="Add type" && selectedSet.has(item.value)
}
uj5u.com熱心網友回復:
如果陳述句為假(在 if } 括起來的括號之后),只需回傳一個值,并且錯誤應該消失。
uj5u.com熱心網友回復:
你必須像這樣改變:
const getSelectValue = () => {
const selectedList = get(state, `${name}`, []);
if (isEmpty(selectedList) || isEmpty(options)) {
return [];
}
const selectedSet = new Set(selectedList);
return options.filter(item => {
return item.value !=="Add type" && selectedSet.has(item.value);
} );
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/482675.html
標籤:javascript 反应 埃斯林特
