微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

尝试从更新的突变响应写入 Apollo gql 中的缓存

如何解决尝试从更新的突变响应写入 Apollo gql 中的缓存

我在我的应用程序的某些部分有这个功能,但我正在尝试在更大的查询上实现它,但它不起作用。

我有以下突变,它确实运行了,但是在尝试写入缓存时出现错误,以便我可以立即重新加载状态而不是刷新页面

我返回的错误如下

错误:需要解析的 GraphQL 文档。也许您需要将查询字符串包装在“gql”标签中?

我正在使用 gql 标签,所以我不认为是这样。我认为在 UpdateDadHat Mutation 的更新缓存函数中写入 writeQuery 时,我的数据不匹配。

希望有敏锐眼光的人可以帮助我。

提前致谢


const [updateDadHat,{ data: updateDadHatData,loading: updating }] =
    useMutation(UPDATE_DAD_HAT,{
      update(cache,{ data: mutatedData }) {
        const updateDadHatResponse = mutatedData?.updateDadHat;

        if (updateDadHatResponse) {

          cache.writeQuery({
            query: GET_DAD_HATS_BY_USER_ID,variables: { id: user.id },data: {
              findUserByID: {
                hats: {
                  data: updateDadHatResponse,},});
        }
      },});

updateDadHatResponse 如下所示

{
    "markers":
    [
        {
            "state": "select","containerTransformMatrix":
            {
                "e": 0,"f": 0,"a": 1,"c": 0,"b": 0,"d": 1,"__typename": "VtM"
            },"left": 37,"height": 30,"text": "your text here","color": "#EF4444","typeName": "TextMarker","fontFamily": "Helvetica,Arial,sans-serif","rotationAngle": 0,"padding": 5,"width": 100,"top": 328,"visualTransformMatrix":
            {
                "e": 0,"__typename": "Marker"
        }
    ],"name": "The test hat","image": "http://res.cloudinary.com/image.png","_id": "304386127558606920","__typename": "DadHat"
}

以下架构

export const GET_DAD_HATS_BY_USER_ID = gql`
  query FindUserByID($id: ID!) {
    findUserByID(id: $id) {
      _id
      name
      hats {
        data {
          markers {
            left
            height
            text
            color
            typeName
            rotationAngle
            padding
            width
            top
            fontFamily
            state
            containerTransformMatrix {
              a
              b
              c
              d
              e
              f
            }
            visualTransformMatrix {
              a
              b
              c
              d
              e
              f
            }
          }
          name
          image
          _id
        }
      }
    }
  }
`;
export const UPDATE_DAD_HAT = gql`
  mutation UpdateDadHat($id: ID!,$connect: ID!,$markers: [MarkerInput]) {
    updateDadHat(
      id: $id
      data: { markers: $markers,owner: { connect: $connect } }
    ) {
      markers {
        state
        containerTransformMatrix {
          e
          f
          a
          c
          b
          d
        }
        left
        height
        text
        color
        typeName
        fontFamily
        rotationAngle
        padding
        width
        top
        visualTransformMatrix {
          e
          f
          a
          c
          b
          d
        }
      }
      name
      image
      _id
    }
  }
`;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。