Nuxt-Apollo-Graphql - 具有关系的嵌套变异

我正在寻找 3 天如何实现嵌套突变。

我正在使用 Nuxt JS、带有 Graphql 和 graphql-tag 模块的 Strapi 以及 MongoDb

我有两个集合:Heaturls 和 heatmap,有一个关系 Heatmap 拥有并属于一个 Heaturl

我使用 store 来查询和变异。

我想要的是向我的 Heatuls 集合添加新条目,然后在我的 Heatmap 集合中使用我之前创建的 heaturl 条目的 ID 创建新条目。

这是我的函数 Store.js

async saveHeaturl({
    commit,dispatch
  },datas) {
    console.log(this.app)
    return await this.app.apolloProvider.clients.defaultClient.mutate({
      mutation: CREATE_HEAT_MUTATION,variables: {
        ...datas,site: this.$auth.$state.user.site,}
    }).then((res) => {
      commit('addHeatItem',res.data.createHeaturl.heaturl)
      console.log('res ???',res.data)
      dispatch("saveHeatmap",res.data.createHeaturl.heaturl)
    })
  },async saveHeatmap({
    commit,},datas) {
    console.log("on a bien disptach le bordel",datas)

    return await this.app.apolloProvider.clients.defaultClient.mutate({
      mutation: CREATE_HEATMAP_MUTATION,variables: {
        heatdatas:JSON.stringify({}),heaturl_id: datas._id
      }
    }).then(res => {
      console.log("res ======",res)
    })
  },

saveHeatmap 在 saveHeaturl 完成后调度。

这是我的查询结构

export const CREATE_HEATMAP_MUTATION = gql `
  mutation createHeatmap($heatdatas: JSON!,$heaturl_id: ID!) {
  createHeatmap(
    input: { data: { heatdatas: $heatdatas,heaturl_id: $heaturl_id } }
  ) {
    heatmap {
      _id
      heaturl_id {
        _id       
      }
    }
  }
}
`

export const CREATE_HEAT_MUTATION = gql `
  mutation createHeaturl(
  $status: Boolean!
  $recordingflow: Int!
  $urlname: String!
  $pagecasting: Boolean!
  $pageurl: String!
  $datamatching: Int!
  $shortdesc: String!
  $pagesnapshot: JSON!
  $site:ID!
) {
  createHeaturl(
    input: {
      data: {
        urlname: $urlname
        recordingflow: $recordingflow
        status: $status
        pagecasting: $pagecasting
        pageurl: $pageurl
        datamatching: $datamatching
        shortdesc: $shortdesc
        pagesnapshot: $pagesnapshot
        site:$site
      }
    }
  ) {
    heaturl {
      _id
      createdAt
      status
      urlname
      pageurl
      shortdesc

    }
  }
}
`

当我使用我的表单保存我的 heaturl 时,一切正常(它保存在我的数据库中)并且我得到了最后创建的 ID。当我调度第二个动作时,我总是得到一个错误。

{,…}
data: {createHeatmap: null}
createHeatmap: null
errors: [{message: "Cannot convert object to primitive value",locations: [{line: 2,column: 3}],…}]
0: {message: "Cannot convert object to primitive value",…}
extensions: {code: "INTERNAL_SERVER_ERROR",exception: {,…}}
locations: [{line: 2,column: 3}]
message: "Cannot convert object to primitive value"
path: ["createHeatmap"]

我不知道如何解决这个问题。我尝试过更改类型格式但没有成功。

我不明白为什么我有这样的错误。 我和别人的收藏有其他关系,还不错。

谁能给我一个线索或任何教程来解决我的问题。

非常感谢大家

法比安

zjs0555 回答:Nuxt-Apollo-Graphql - 具有关系的嵌套变异

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/980834.html

大家都在问