簡體   English   中英

如何完全改變數組中的對象列表作為 GraphQL 中的參數

[英]How to mutate a list of objects in an array as an argument in GraphQL completely

我不能完全改變對象列表,因為只有數組的最后一個元素會被改變。

已經完美工作的是,如果我像這里一樣手動將每個元素 ({play_positions_id: ...}) 放入數組中:

mutation CreateProfile {
  __typename
  create_profiles_item(data: {status: "draft", play_positions: [{play_positions_id: {id: "1"}}, {play_positions_id: {id: "2"}}]}) {
    id
    status
    play_positions {
     
      play_positions_id {
        abbreviation
        name
      }
    }
  }
}

Output:

{
  "data": {
    "__typename": "Mutation",
    "create_profiles_item": {
      "id": "1337",
      "status": "draft",
      "play_positions": [
        {
          "play_positions_id": {
            "id": "1",
            "abbreviation": "RWB",
            "name": "Right Wingback"
          }
        },
        {
         "play_positions_id": {
            "id": "2",
            "abbreviation": "CAM",
            "name": "Central Attacking Midfielder"
          }
        }
      ],
    }
  }
}

由於您可以添加許多這些元素,因此我定義了一個變量/參數,如下所示

mutation CreateProfile2($cpppi: [create_profiles_play_positions_input]) {
  __typename
  create_profiles_item(data: {status: "draft", play_positions: $cpppi}) {
    id
    status
    play_positions {
      
      play_positions_id {
        id
        abbreviation
        name
      }
    }
  }
}

上面的變量 object:

"cpppi": {    
    "play_positions_id": {
      "id": "1"
    },
    "play_positions_id": {
      "id": "2
    }
  }

Output:

{
  "data": {
    "__typename": "Mutation",
    "create_profiles_item": {
      "id": "1338",
      "play_positions": [
        {
        
          "play_positions_id": {
            "id": "2",
            "abbreviation": "CAM",
            "name": "Central Attacking Midfielder"
          }
        }
      ],
    }
  }
}

架構:

input create_profiles_input {
  id: ID
  status: String!
  play_positions: [create_profiles_play_positions_input]
}

input create_profiles_play_positions_input {
  id: ID
  play_positions_id: create_play_positions_input
}

input create_play_positions_input {
      id: ID 
      abbreviation: String
      name: String
}

在最后兩個片段中,只有最后一個 id 為“2”的 object 會發生變化。 我需要這些來使用后端定義的輸入類型。

我想到了。 我弄錯了變量中的括號。 這里的解決方案:

"cpppi": [
    {
      "play_positions_id": {
        "id": "1"
      }
    },
    {
      "play_positions_id": {
        "id": "2"
      }
    }
  ]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM