我有这个在元素悬停时调用的例程:
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 的变量在两个地方都是相同的。我希望该组件会从缓存中检索数据。但相反,我的服务器解析器运行并检索数据。
我错过了什么?