在ReactJS中,实现带有两个组件的搜索过滤功能通常涉及到状态管理、事件处理和数组过滤。以下是一个基本的示例,展示了如何创建一个具有两个输入字段的搜索组件,这两个字段将用于过滤列表中的项目。
import React, { useState } from 'react';
const SearchFilter = ({ data }) => {
const [searchTerm1, setSearchTerm1] = useState('');
const [searchTerm2, setSearchTerm2] = useState('');
const handleSearch1 = (event) => {
setSearchTerm1(event.target.value);
};
const handleSearch2 = (event) => {
setSearchTerm2(event.target.value);
};
const filteredData = data.filter((item) => {
return (
item.field1.toLowerCase().includes(searchTerm1.toLowerCase()) &&
item.field2.toLowerCase().includes(searchTerm2.toLowerCase())
);
});
return (
<div>
<input
type="text"
placeholder="Search by Field 1"
value={searchTerm1}
onChange={handleSearch1}
/>
<input
type="text"
placeholder="Search by Field 2"
value={searchTerm2}
onChange={handleSearch2}
/>
<ul>
{filteredData.map((item) => (
<li key={item.id}>
{item.field1} - {item.field2}
</li>
))}
</ul>
</div>
);
};
export default SearchFilter;
import { debounce } from 'lodash';
const handleSearch1 = debounce((event) => {
setSearchTerm1(event.target.value);
}, 300);
const handleSearch2 = debounce((event) => {
setSearchTerm2(event.target.value);
}, 300);
通过上述方法,可以有效地在ReactJS中实现带有两个组件的搜索过滤功能,并解决可能出现的问题。
领取专属 10元无门槛券
手把手带您无忧上云