我有一个用于从服务器获取数据的自定义挂钩。它有3个参数,分别是pageNumber、pageSize和keyword。据我所知,如果我设置一个或多个这些参数,挂钩就会以新状态重新触发。但是在我的组件中,有一个地方当我创建数据时,所以一旦创建它就必须再次获取数据。但其参数(如 pageNumber、pageSize 和 keywords)均未更新。我只需要它再次运行以获取新数据。在不改变状态的情况下,我该如何做到这一点?(在下面的代码中,“Adapter”是一个 Axios 实例)
这是钩子:
const useFetchLists = (
url = '',
currentPage = 1,
selectedPageSize = 10,
keyword = ''
) => {
const [items, setItems] = useState([]);
const [loading, setloading] = useState(false);
const [totalPage, setTotalPage] = useState(1);
const [totalItemCount, setTotalItemCount] = useState(0);
useEffect(() => {
const fetchListData = async () => {
try {
setloading(true);
await Adapter.get(
`${url}?pageNumber=${currentPage}&pageSize=${selectedPageSize}&keyword=${keyword}`,
{}
).then((response) => {
setItems(response.data.items);
setTotalPage(response.data.totalPages);
setTotalItemCount(response.data.totalItems);
});
} catch (err) {
} finally {
setloading(false);
}
}; …Run Code Online (Sandbox Code Playgroud)