Apollo GraphQL:预取数据,但查询命中服务器而不是从缓存加载?

时间:2019-03-01 01:46:31

标签: apollo react-apollo apollo-client

我有一个在元素悬停时调用的例程:

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的变量在两个地方都相同。我希望该组件将从缓存中检索数据。但是,我的服务器解析器运行并检索数据。

我想念什么?

1 个答案:

答案 0 :(得分:0)

看起来只是因为我在预加载的组件中使用了refetch