我有典型的获取请求
const { data } = useSWR(
['api/projects', API_KEY],
fetcher
);
在获取数据后,我想根据当前GPS位置过滤项目。
那么如何更好地做到这一点呢?
像onSuccess(data, key, config)
一样将数据存储到我的状态并在进行过滤之后?
还是我应该以某种方式使用突变并过滤缓存的数据?
答案 0 :(得分:1)
您可以简单地将数据过滤到一个新数组中,并根据该数组渲染组件。像这样:
const { data:projects, error } = useSWR(
['api/projects', API_KEY],
fetcher
);
if(error) return (<ErrorScreen />);
if(!data) return (<Loading />);
let availableProjects = projects.filter(p => availabilityChecker(p.location));
return (
availableProjects.map(p => (<Project key={p.id} project={p} />));
);