Клиент Apollo updateQuery Отсутствует поле [fieldName] в {} - PullRequest
0 голосов
/ 06 октября 2019

В определенной функции Query subscribeToMore я не могу заставить Query получать новые данные.

        updateQuery: async (prev, { subscriptionData } ) => {
            const posts = [
                ...prev.getPosts,
                subscriptionData.data.postCreated
            ];
            const result = {
                ...prev,
                count: posts.length,
                getPosts: posts
            }
            return result;
        }

Это приводит к следующей ошибке:

Отсутствует поле getPosts в {}

Если я регистрирую результат, я получаю:

Object {getPosts: (3) […], count: 3}

Я не уверен, что является причиной этого, поскольку это кажется нормальным для некоторых других вызовов updateQuery. Этот, в частности, кажется, сломался.

Запросы, о которых идет речь:

export const POST_CREATED = gql`    
    subscription postCreated($authorId: ID!){
        postCreated(authorId: $authorId){
            id, title, createdAt, published
        }
    } `;

export const GET_POSTS = gql`
    query getPosts($authorId: ID!){
        getPosts(authorId: $authorId){
            id, title, createdAt, published
        }
    } `;
...