React search and filter: TypeError: setFilterFn不是一个函数



我正在研究搜索和过滤功能。当我在搜索框中输入文本时,匹配条件的内容将被过滤掉。我想使用下面的函数来实现这一点,但是当我键入时,"TypeError: setFilterFn不是一个函数">将会发生。我不知道哪里出了问题,我该怎么解决?非常感谢!

const [setFilterFn] = useState({ fn: items => { return items; } })
const handleSearch = e => {
let target = e.target;
setFilterFn({
fn: items => {
if (target.value != "")
return items;
else
return items.filter(item => item.fullName.toLowerCase().includes(target.value.toLowerCase()))
}
})
}

快速修复…加逗号…

const [,setFilterFn] = useState((items) => ( items));

看起来你的逻辑也有问题。

if (target.value != "")

这里的运算符应该是===,否则你只会过滤空字符串。

看一下useState函数,该函数返回数组与两个参数,第一个值的状态,第二个是回调函数,将改变你的状态值。您只提供了一个值,所以反应假设是值而不是函数。你可以在docs

中阅读更多内容

相关内容

  • 没有找到相关文章

最新更新