【发布时间】:2021-08-03 23:14:43
【问题描述】:
我目前有一个下拉菜单和一个搜索栏来搜索数据,但我遇到了一些问题。
API 看起来像这样:
{
"id": 1,
"first_name": "Rodrick",
"last_name": "Costar",
"birthdate": "1944-05-06T04:22:45Z",
},
我目前有这个来设置我的状态
const [data, setData] = useState([]);
const [searchNameFilter, setSearchNameFilter] = useState(data)
我用来通过输入搜索名字的函数是
const searchNames = event => {
let name = event.target.value.toLowerCase()
let result = []
console.log(name)
result = data.filter((d) => {
return d.first_name.search(name)
})
setSearchNameFilter(result)
}
对于输入的返回函数,我有:
<input name="name" type="text" onChange={(event) => searchNames(event)} />
<main className="container">
{data.map(user => {
return (
<div className="row">
<div>{user.first_name}{user.last_name}</div>
<div>{user.birthdate}</div>
该功能有效,但它没有过滤我需要的内容。当我控制台日志时,它会显示我正在输入的字符,但它似乎没有过滤任何内容。我还希望它过滤它,以便它可以搜索名字或姓氏,但我将它设置为名字来测试它。
【问题讨论】:
标签: javascript reactjs api