我在理解为什么我的这段 React 代码收到警告时遇到了一些问题
<块引用>Array.prototype.filter() 期望在箭头函数结束时返回一个值
但它似乎有效。
{customers
.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)
.filter((customer) => {
if (searchTerm === "") {
return customer;
} else if (
customer.cust_main_name.toLowerCase().includes(searchTerm.toLowerCase())
) {
return customer;
}
})
我需要进行哪些更改才能避免出现此警告?
答案 0 :(得分:0)
Array.prototype.filter
期望从回调函数中返回一个值,暗示是保留还是拒绝当前 itemm 值
但是,在您的回调函数中,您有 if-else-if 块,您可以在其中返回值,但 if 或 else-if 条件都不匹配,您不会返回错误指向的任何内容
如果您的 if 或 else-if 条件都不匹配,您可以返回 false
customers
.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)
.filter((customer) => {
if (searchTerm === "") {
return customer;
} else if (
customer.cust_main_name.toLowerCase().includes(searchTerm.toLowerCase())
) {
return customer;
}
return false;
})
答案 1 :(得分:0)
更紧凑的版本:
{customers
.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)
.filter((customer) => !searchTerm || customer.cust_main_name.toLowerCase().includes(searchTerm.toLowerCase())
})