【发布时间】:2020-11-19 09:09:00
【问题描述】:
使用 React,我创建了一个搜索输入,我希望根据我的搜索值显示人员。这是我的代码:
import React, { useState, useEffect } from 'react';
function FilterPerson() {
const [persons, setPersons] = useState([]);
useEffect(() => {
setPersons([
{ firstName: 'John', lastName: 'Doe', age: 27 },
{ firstName: 'Jane', lastName: 'Doe', age: 25 },
{ firstName: 'Baby', lastName: 'Doe', age: 21 },
]);
}, []);
const toDisplay = persons.map((person) => {
return (
<div key={person.firstName}>
{person.firstName}, {person.lastName}, {person.age}
</div>
);
});
const onChangedHandler = (value) => {
setPersons(persons.filter((person) => {
return person.firstName.includes(value)
}));
};
return (
<div>
<input type="text" onChange={(event) => onChangedHandler(event.target.value)} />
{toDisplay}
</div>
);
};
export default FilterPerson;
仅显示John 和Jane。结果看起来不错。
但是,当我从字段中删除大写字母 J 时,Baby Doe 应该会出现,但它没有:
从现在开始,无论我在搜索字段中输入什么内容,都不再显示任何内容。
谁能帮我解决这个问题?
【问题讨论】:
标签: javascript reactjs search input state