我有一个在元素悬停时调用的例程:
function prefetchDataOnHover(event){
const messsageID = event.currentTarget.id;
if ((Meteor.userId()) && (!prefetched_IMs)){
client.query({
query: INSTANTMESSAGES_QUERY,
variables: {"fromID": Meteor.userId(), "toID": messsageID}
});
setPrefetched_IMs(true);
}
}
它预取我的即时消息组件使用的数据。在该组件中,我有一个<Query>
组件:
<Query query={INSTANTMESSAGES_QUERY}
variables={{"fromID": Meteor.userId(), "toID": remoteUserID}}> //<==confirmed same values as in pre-fetch
{({subscribeToMore, loading, error, data, refetch}) => {
if (loading) {
[.....]
我已经确认发送到INSTANTMESSAGES_QUERY的变量在两个地方都相同。我希望该组件将从缓存中检索数据。但是,我的服务器解析器运行并检索数据。
我想念什么?
答案 0 :(得分:0)
看起来只是因为我在预加载的组件中使用了refetch
。