Получение `Store error: приложение попыталось записать объект без предоставленного typename, но хранилище уже содержит объект с typename`

Объекты метода создаются каждый раз, когда вы обращаетесь к ним . Функции действуют как дескрипторы , возвращая объект метода, когда вызывается метод .__get__:

>>> What.__dict__['meth']

>>> What.__dict__['meth'].__get__(None, What)

>>> What.__dict__['meth'].__get__(What(), What)
>

Вместо этого используйте проверку равенства ==.

Два метода равны, если их атрибуты .im_self и .im_func идентичны. Если вам нужно проверить, что методы представляют одну и ту же основную функцию , проверьте их атрибуты im_func:

>>> What.meth == What.meth     # unbound methods (or functions in Python 3)
True
>>> What().meth == What.meth   # unbound method and bound method
False
>>> What().meth == What().meth # bound methods with *different* instances
False
>>> What().meth.im_func == What().meth.im_func  # functions
True

0
задан anzie001 3 March 2019 в 01:46
поделиться

1 ответ

При передаче обновления у меня неправильно объявлялся объект в резольверах. А также мне не хватало typeName в этом объекте. Правильный синтаксис был:

updatePersonDetails: (
      _,
      {persondetails, age, empId},
      {cache}
    ) => {
      cache.writeFragment({
        id: `validationType:${age}!${empId}`,
        fragment: gql`
          fragment updatePersonDetails on validationType {
            persondetails {
              first
              last
              age
              empId
              __typename

            }
            __typename
          }
        `,
        data: {
          persondetails: {
           ...persondetails,
           __typename: 'persondetailsType'
}
          __typename: 'validationType'
        }
      });
0
ответ дан anzie001 3 March 2019 в 01:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: