无法修复无法读取未定义的属性
2022-04-12
1508
我试图消除此错误,但无法解决此问题,当没有数据可过滤时,这种情况很明显,我想避免它
我有一个过滤数据的函数
const filteredItems = useMemo(() => {
return results.filter((quote) => {
const a = quote.customer_reference.toLowerCase().includes(customer_reference.toLowerCase())
const b = quote.created_by.toLowerCase().includes(created_by.toLowerCase())
const c = quote.quote_status.toLowerCase().includes(quote_status.toLowerCase())
if (a && b && c) {
return true
}
return false
})
})
此处
results
是来自后端的项目列表,从后端加载数据需要一点时间,然后崩溃并给出未定义的错误。此外,我需要将过滤后的列表传递到数据表中,就像这里一样。
<DataTable
noHeader
size="sm"
pagination
columns={advSearchColumns}
paginationPerPage={7}
className="table-sm"
sortIcon={<ChevronDown size={10} />}
paginationDefaultPage={currentPage + 1}
paginationComponent={CustomPagination}
data={filteredItems} // Thats the filtered items
/>
完整错误 ×
TypeError: Cannot read properties of undefined (reading 'filter')
1个回答
根据上面的注释,表明错误在此处抛出:
return results.filter((quote) => {
如果
results
未定义,则无法“过滤”任何内容。在这种情况下,
filteredItems
应该返回什么?例如,您可以执行 null 检查以返回 null:
return results?.filter((quote) => {
或者,您可以有条件地返回一个空数组:
return results ? results.filter((quote) => {
//...
}) : [];
David
2022-04-12