Apollo GraphQL: предварительная выборка данных, но запрос загружает сервер вместо загрузки из кэша? - PullRequest
0 голосов
/ 01 марта 2019

У меня есть эта подпрограмма, которая вызывается при наведении на элемент:

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 голосов
/ 01 марта 2019

Похоже, это потому, что я использую refetch в предварительно загруженном компоненте.

...