返回
工作中经常遇到的需求总结(1)下拉框选择后刷新数据实现方案
前端
2023-11-10 03:20:12
组件封装
首先,我们需要将下拉框和数据列表组件封装成一个独立的组件。这样可以方便我们在不同的页面中复用该组件。
import React, { useState, useEffect } from "react";
const SelectData = () => {
const [selectedOption, setSelectedOption] = useState("");
const [data, setData] = useState([]);
useEffect(() => {
const fetchData = async () => {
const response = await fetch(`https://example.com/data/${selectedOption}`);
const data = await response.json();
setData(data);
};
if (selectedOption !== "") {
fetchData();
}
}, [selectedOption]);
return (
<div>
<select value={selectedOption} onChange={(e) => setSelectedOption(e.target.value)}>
<option value="">Select an option</option>
<option value="option1">Option 1</option>
<option value="option2">Option 2</option>
<option value="option3">Option 3</option>
</select>
<ul>
{data.map((item) => (
<li key={item.id}>{item.name}</li>
))}
</ul>
</div>
);
};
export default SelectData;
时间处理的函数
接下来,我们需要编写一个函数来处理时间。这个函数的作用是将字符串类型的日期转换成Date类型,并格式化为我们想要的格式。
const formatDate = (dateString) => {
const date = new Date(dateString);
return date.toLocaleDateString();
};
根据下拉框的选择重新获取数据
最后,我们需要编写一个函数来根据下拉框的选择重新获取数据。这个函数的作用是根据下拉框的值构建一个URL,然后使用fetch函数从服务器获取数据。
const fetchData = async (selectedOption) => {
const response = await fetch(`https://example.com/data/${selectedOption}`);
const data = await response.json();
return data;
};
使用
现在,我们可以将SelectData组件添加到我们的页面中。
import SelectData from "./SelectData";
const App = () => {
return (
<div>
<SelectData />
</div>
);
};
export default App;
当用户选择不同的下拉框选项时,SelectData组件将根据选项的值重新获取数据并刷新数据列表。
总结
以上就是实现下拉框选择后刷新数据的一种简单易行的方案。这种方案的优点是简单易懂,易于维护。缺点是如果下拉框选项很多,则需要在组件中添加更多的代码来处理不同的选项。
希望这篇博文对您有所帮助。如果您有任何问题,请随时留言。