und*_*ood 11 javascript reactjs swr
我主要使用 SWR 来获取数据,但是我遇到了需要更新数据的情况。问题是,我需要一个指示该请求正在进行的指示器,例如isLoading标志。在文档中有一个使用建议
const isLoading = !data && !error;
Run Code Online (Sandbox Code Playgroud)
但当然,当更新(变异)时,data仍然存在,因此该标志始终为false。与标志相同isValidating:
const { isValidating } = useSWR(...);
Run Code Online (Sandbox Code Playgroud)
当突变正在进行时,此标志不会更改,但仅当其完成且GET请求开始时才更改。
有没有办法知道我的是否PUT正在加载?注意:我不想使用状态中的任何字段,因为它不会像 SWR 数据一样被共享。也许我的 SWR 代码有问题?
const fetcher = (url, payload) => axios.post(url, payload).then((res) => res);
// ^^^^^ its POST but it only fetches data
const updater = (url, payload) => axios.put(url, payload).then((res) => res);
// ^^^^^ this one UPDATES the data
const useHook = () => {
const { data, error, mutate, isValidating } = useSWR([getURL, payload], fetcher);
const { mutate: update } = useSWRConfig();
const updateData = () => {
update(getURL, updater(putURL, payload)); // update data
mutate(); // refetch data after update
};
return {
data,
updateData,
isValidating, // true only when fetching data
isLoading: !data && !error, // true only when fetching data
}
Run Code Online (Sandbox Code Playgroud)
编辑:对于任何其他阅读本文并面临相同问题的人...没有找到任何解决方案,因此切换到react-query. 再见驻波比
小智 -3
嗯基于此: https: //swr.vercel.app/docs/conditional-fetching
updater当您的is 评估为“falsy”值时,“正在加载”状态应该有效。
余!我不知道 React swr 只是查看了文档 - 在周末结束时花费了很多时间:D
至少我希望我能开始讨论:D
| 归档时间: |
|
| 查看次数: |
4715 次 |
| 最近记录: |