加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

reactjs – 将对象数组添加到apollo-react中的变异中

发布时间:2020-12-15 16:21:09 所属栏目:百科 来源:网络整理
导读:我在前端使用react-apollo,在后端使用graphcool.我有一个突变,创建一个这样的教程: const CREATE_TUTORIAL_MUTATION = gql` mutation CreateTutorialMutation( $author: String $link: String $title: String! $postedById: ID! $completed: Boolean! ) { c
我在前端使用react-apollo,在后端使用graphcool.我有一个突变,创建一个这样的教程:

const CREATE_TUTORIAL_MUTATION = gql`
  mutation CreateTutorialMutation(
    $author: String
    $link: String
    $title: String!
    $postedById: ID!
    $completed: Boolean!
  ) {
    createTutorial(
      author: $author
      link: $link
      title: $title
      postedById: $postedById
      completed: $completed
    ) {
      author
      link
      title
      postedBy {
        id
        name
      }
      completed
    }
  }
`

它在提交处理程序中调用,如此…

this.props.createTutorialMutation({
      variables: {
        author,link,title,completed: false,postedById
      }
    })

一切都很美妙.

现在我想在创建新教程时添加一组标记.我创建了输入字段并将其连接起来,以便tags变量是一个对象数组,每个对象都有一个标记id和标记文本.

如果我尝试将标记字段添加到变异中,则需要标量类型.但是对于一组对象似乎没有标量类型.

如果我在调用变异时将tag变量作为参数传递,我如何填充变异中的Scalar类型字段(在这里的第148行)和模式中?

我是graphQL的新手,我明白我可能会以错误的方式接近这一点.如果是这种情况,我如何在graphQL中添加一个对象数组?

解决方法

您应该将新的标记类型添加到模式文件中,并使用新关系将其连接到Tutorial:

type Tutorial {
  author: String
  completed: Boolean
  link: String
  title: String!
  id: ID! @isUnique
  createdAt: DateTime!
  updatedAt: DateTime!
  postedBy: User @relation(name: "UsersTutorials")
  tags: [Tag!]! @relation(name: "TutorialTags")
}

type Tag {
  id: ID!
  tag: String!
  number: Int!
  tutorials: [Tutorial!]! @relation(name: "TutorialTags")
}

然后,您可以使用嵌套的创建突变创建新教程和新标记,如下所示:

const CREATE_TUTORIAL_MUTATION = gql`
  mutation CreateTutorialMutation(
    $author: String
    $link: String
    $title: String!
    $tags: [TutorialtagsTag!]!
    $completed: Boolean!
    $postedById: ID!
  ) {
    createTutorial(
      author: $author
      link: $link
      title: $title
      tags: $tags
      completed: $completed
      postedById: $postedById
    ) {
      author
      link
      title
      postedBy {
        id
        name
      }
      completed
      tags {
        id
        text
      }
    }
  }
`

这篇文章提供了更多关于其他方法及其权衡的背景知识:https://www.graph.cool/forum/t/how-do-i-add-an-array-of-objects-to-a-mutation-in-apollo-react/365/6?u=nilan

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读