在 React 中过滤多个输入的操作
Manipulation in Filtering multiple inputs in React
我有两个日期输入和一个 select 标签来过滤数据表中的数据。
收集数据并将其存储在变量中后,我想创建一个新变量 filteredItems,进行操作,问题是当两个日期输入为空或 select 输入为空时,它将过滤输入为""且为零数据,如何在filteredItem内部进行检查,以进行正确的过滤。
const [data, setData] = useState([]);
const [type, setType] = React.useState("");
const [startDate, setStartDate] = React.useState(null);
const [endDate, setEndDate] = React.useState(null);
useEffect(() => {
const data = await axios(`url`);
setData(data);
}, []);
const filteredItems = data.filter(
(item) =>
item.startDate >= startDate &&
item.endDate <= endDate &&
item.type == type
);
return (
<>
<DataTable
data={filteredItems} />
</>
)
const filteredData = absencesData.filter((item) =>
!startDate && !endDate && !type
? true
: !startDate && !endDate && type
? item.type === type
: startDate && endDate && !type
? item.startDate >= startDate && item.endDate <= endDate
: startDate && endDate && type
? item.startDate >= startDate &&
item.endDate <= endDate &&
item.type === type
: true
);
我有两个日期输入和一个 select 标签来过滤数据表中的数据。 收集数据并将其存储在变量中后,我想创建一个新变量 filteredItems,进行操作,问题是当两个日期输入为空或 select 输入为空时,它将过滤输入为""且为零数据,如何在filteredItem内部进行检查,以进行正确的过滤。
const [data, setData] = useState([]);
const [type, setType] = React.useState("");
const [startDate, setStartDate] = React.useState(null);
const [endDate, setEndDate] = React.useState(null);
useEffect(() => {
const data = await axios(`url`);
setData(data);
}, []);
const filteredItems = data.filter(
(item) =>
item.startDate >= startDate &&
item.endDate <= endDate &&
item.type == type
);
return (
<>
<DataTable
data={filteredItems} />
</>
)
const filteredData = absencesData.filter((item) =>
!startDate && !endDate && !type
? true
: !startDate && !endDate && type
? item.type === type
: startDate && endDate && !type
? item.startDate >= startDate && item.endDate <= endDate
: startDate && endDate && type
? item.startDate >= startDate &&
item.endDate <= endDate &&
item.type === type
: true
);