反应SWR,如何过滤/排序数据

时间:2020-09-18 10:26:28

标签: reactjs

我有典型的获取请求

const { data } = useSWR(
  ['api/projects', API_KEY],
  fetcher
);

在获取数据后,我想根据当前GPS位置过滤项目。 那么如何更好地做到这一点呢? 像onSuccess(data, key, config)一样将数据存储到我的状态并在进行过滤之后? 还是我应该以某种方式使用突变并过滤缓存的数据?

1 个答案:

答案 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} />));
);