【发布时间】:2021-03-21 16:57:18
【问题描述】:
我有一个查询和一个订阅,我想做的是将我的数据添加到上一个查询中,以便它显示完整列表。
我有一个query,它返回给我学生列表,我正在像下面这样在 UI 上呈现它
function Test(props) {
const { loading, data: dta } = useQuery(GETSTUDENTS);
const { data: d } = useSubscription(GETSUBSTUDENTS, {
onSubscriptionData: ({ subscriptionData: { data } }) => {
let fname = data.getSubStudent.fname;
let lname = data.getSubStudent.lname;
dta.getStudents.push({ fname, lname });
},
});
return (
<div className="">
{dta &&
dta.getStudents.map((li) => {
<div>
<p>{li.fname}</p>
<p>{li.lname}</p>
</div>;
})}
</div>
);
}
export default Test;
但主要问题是上述问题没有更新缓存,所以当我更改路由并再次返回时,它只需要以前的数据。
所以我想知道什么是最好的方法,我也检查了subscribeToMore,但不知道如何实现它以及它如何与钩子一起工作。
我从订阅中获取了一些数据,在此基础上我想更改其他部分以便我可以使用 refetchQueries 我没有找到任何使用 qraphql 使用钩子(react-apollo-hooks)的好教程
【问题讨论】:
标签: javascript reactjs graphql react-hooks react-apollo