useMutation не изменяет локальное состояние - PullRequest
1 голос
/ 16 января 2020

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

errInvariant Violation: Ожидается проанализированный документ GraphQL. Возможно, вам нужно обернуть строку запроса в тег "gql"? http://docs.apollostack.com/apollo-client/core.html#gql

Исходное состояние

registration: {
    __typename: 'Registration',
    tempMerchantId: '',
    authorizeProfile: {
      __typename: 'AuthorizePersonProfile',
      nid_front: '',
      nid_back: '',
      authorized_person_photo: ''
    }
  }

Моя мутация

export const setAuthorizePersonQuery = gql`
    mutation setAuthorizePersonProfileInfo($authorizePerosnData: Object!){
        setAuthorizePersonProfileInfo(authorizePersonData: $authorizePerosnData) @client
    }
`;

Мой резольвер

export const setAuthorizePersonProfileInfo = (
  _, { authorizePersonData }, { cache }
) => {
  try {
    const prevData = cache.readQuery({ getAuthorizePersonProfileQuery });
    cache.writeQuery({
      getAuthorizePersonProfileQuery,
      data: {
        registration: {
          __typename: 'Registration',
          authorizeProfile: {
            __typename: 'AuthorizePersonProfile',
            ...prevData.registration.authorizeProfile,
            ...authorizePersonData
          }
        }
      }
    });
  } catch (e) {
    console.log(`err${e}`);
  }
  return null;
};

Я пытаюсь изменить местное состояние при нажатии кнопки, функция

const handlePressedNext = () => {
    Promise.all([
      setAuthorizePersonProfileInfo({
        variables: { authorizePersonData: generateNidData() }
      })
    ])
      .then(() => {
        navigation.navigate('Photograph');
      });
  };

generateNidData функция, как показано ниже

const generateNidData = () => ({
    nid_front: nidFrontImage,
    nid_back: nidBackImage
  });

Я новичок в клиенте apollo. Я не могу понять, что я делаю не так. Может кто-нибудь помочь мне разобраться в проблеме?

1 Ответ

2 голосов
/ 16 января 2020

getAuthorizePersonProfileQuery не является допустимым параметром для readQuery. Предположительно, вы имели в виду использовать query вместо.

...