Ошибка «selectionSet is null» при использовании apollo-link-state для сохранения данных @client - PullRequest
0 голосов
/ 26 апреля 2018

Я не уверен, что именно означает эта ошибка. Я получаю это при попытке вызвать мутацию в моем местном состоянии

сообщение: «Ошибка сети: selectionSet is null» networkError: Ошибка типа: selectionSet is null

Это мой код для apollo-link-state:

const stateLink = withClientState({
            cache,
            resolvers: {
                Mutation: {
                    setNavigationsState: (_:any, { path }:any, { cache }:any):any => {
                        cache.writeData(
                            {
                                navigationState: {
                                    __typename: 'NavigationState',
                                    path
                                }
                        });
                        return null;
                    },
                },
            },
            defaults: {
                navigationState: {
                    __typename: 'NavigationState',
                    path: "default",
                }
            },
        });

Мой призыв к мутированию:

Apollo.client.mutate<FetchResult<ApolloQueryResult<any>>>({
            mutation:
            gql`
                mutation Test{
                    setNavigationsState(path:"newpath") @client{
                        path
                    }

                }
            `
        })

Схема Graphql:

type RootMutation {
  setNavigationsState(path: String): NavigationState
}
type RootQuery {
  navigationState:NavigationState
}
type NavigationState {
  path:String!
}

Работает нормально, когда я пытаюсь сделать запрос:

let _test = Apollo.client.query<RootQuery>({
            query:
            gql`
                query TEST{
                        navigationState @client{
                            path
                        }

                }
            `
        })

1 Ответ

0 голосов
/ 26 апреля 2018

Это может быть потому, что navigationState находится не в корне кеша, а в 'data':

cache.writeData({
  data: {
     navigationState: {
       __typename: 'NavigationState',
       path
     }
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...