【发布时间】:2022-01-23 09:24:03
【问题描述】:
-
我正在尝试使用反应添加搜索过滤器,并使用 json 数据 我正在尝试将其与搜索词匹配
-
下面是我的代码
const App = () => { const [searchTerm, setSearchTerm] = useState([""]) const [query, setQuery] = useState("");
useEffect(() => { const url = "https://60d075407de0b20017108b89.mockapi.io/api/v1/animals";
const fetchData = async () => { try { const response = await fetch(url); const json = await response.json(); console.log([json].query); setQuery(json.query); } catch (error) { console.log("error", error); } }; fetchData();}, []);
返回 ( { setSearchTerm(event.target.value) }} />
{ query.filter((val) => { if (searchTerm === "s") { return val } else if (val.name.toLowerCase().includes(searchTerm.toLowerCase())) { return val } else return false }).map((val) => { return ( <div className='user' > <p>{val.name}</p> <p>age: {monthDiff(val.bornAt)} months</p> </div> ); })} </div>); };
当我尝试执行时,出现以下错误 谁能解释为什么会发生这种情况
> Uncaught TypeError: Cannot read properties of undefined (reading
> 'toLowerCase')
【问题讨论】:
-
欢迎来到 SO!如果您的代码,您可以修复格式吗?我认为你有一些不合适的地方:)
标签: javascript reactjs react-hooks