filter方法)来做吗?在这里,我使用了一个for循环:const [dataObject, setdataObject] = useState([{}]);
const [filterData, setfilterData] = useState({});
const showMillions = () => {
// //console.log(dataObject);
let x = 0;
let name = '';
for (let i = 0; i < dataObject.length; i++) {
// console.log(dataObject);
if (dataObject[i].money > x) {
x = dataObject[i].money;
name = dataObject[i].name;
}
}
setfilterData(name);
for (let i = 0; i < dataObject.length; i++) {
if (filterData === dataObject[i].name) {
setdataObject([dataObject[i]]);
}
}
};
<div><button className="btn btn-dark" onClick={showMillions} >Show Millionaires</button></div>发布于 2020-10-13 09:37:36
您必须单击该按钮两次,因为setfilterData(name)是异步的。您可以在最后一个for循环中使用useEffect或使用name而不是filterData。
const [dataObject, setdataObject] = useState([{}]);
const [filterData, setfilterData] = useState({});
useEffect(() => {
// using filter
setDataObject(dataObject.filter((item) => item.name === filterData));
}, [filterData]);
const showMillions = () => {
// //console.log(dataObject);
let x = 0;
let name = '';
for (let i = 0; i < dataObject.length; i++) {
// console.log(dataObject);
if (dataObject[i].money > x) {
x = dataObject[i].money;
name = dataObject[i].name;
}
}
setfilterData(name);
}
};
<div><button className="btn btn-dark" onClick={showMillions} >Show Millionaires</button></div>https://stackoverflow.com/questions/64331797
复制相似问题