我想说,避免这种情况的最简单方法是先检查resp.first_name
是否不为空,然后再调用toLowerCase
函数。
,
您的过滤器功能应该看起来像这样,否则您将不返回布尔值而是一个字符串:
Error: Packets out of order. Got: 1 Expected: 0
at Parser._tryReadPacketHeader (/Users/gabrielraichart/Documents/tcv/node_modules/mysql/lib/protocol/Parser.js:470:15)
at Parser.write (/Users/gabrielraichart/Documents/tcv/node_modules/mysql/lib/protocol/Parser.js:33:29)
at Protocol.write (/Users/gabrielraichart/Documents/tcv/node_modules/mysql/lib/protocol/Protocol.js:38:16)
at Socket.<anonymous> (/Users/gabrielraichart/Documents/tcv/node_modules/mysql/lib/Connection.js:91:28)
at Socket.<anonymous> (/Users/gabrielraichart/Documents/tcv/node_modules/mysql/lib/Connection.js:525:10)
at Socket.emit (events.js:210:5)
at addChunk (_stream_readable.js:308:12)
at readableAddChunk (_stream_readable.js:289:11)
at Socket.Readable.push (_stream_readable.js:223:10)
at TCP.onStreamRead (internal/stream_base_commons.js:182:23)
--------------------
at Protocol._enqueue (/Users/gabrielraichart/Documents/tcv/node_modules/mysql/lib/protocol/Protocol.js:144:48)
at Protocol.handshake (/Users/gabrielraichart/Documents/tcv/node_modules/mysql/lib/protocol/Protocol.js:51:23)
at Connection.connect (/Users/gabrielraichart/Documents/tcv/node_modules/mysql/lib/Connection.js:119:18)
at Object.<anonymous> (/Users/gabrielraichart/Documents/tcv/test.js:9:5)
at Module._compile (internal/modules/cjs/loader.js:956:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:973:10)
at Module.load (internal/modules/cjs/loader.js:812:32)
at Function.Module._load (internal/modules/cjs/loader.js:724:14)
at Function.Module.runMain (internal/modules/cjs/loader.js:1025:10)
at internal/main/run_main_module.js:17:11 {
code: 'PROTOCOL_PACKETS_OUT_OF_ORDER',fatal: true
,
很难准确说明您要使用filter方法做什么,但是Array.prototype.filter
接受一个回调,该回调在被调用时会强制转换为布尔值。如果该布尔值对于给定的数组元素为true,则该结果将包含在过滤列表中。如果为假,则不包括结果。
鉴于您返回的是非空字符串,所有结果都会显示出来;我认为这将使您更接近要执行的操作:
useEffect(() => {
if (props.data !== undefined) {
const results = props.data.filter(
resp =>
(resp.first_name && resp.first_name.toLowerCase().includes(filter))
&&
(resp.last_name && resp.last_name.toLowerCase().includes(filter))
);
setFilteredResults(results);
}
},[filter,props.data]);
在尝试访问它们之前,请使用简单的值/空值检查来确保在first_name
上未定义last_name
和resp
。
本文链接:https://www.f2er.com/3106785.html