これを達成するために、ネストされた突然変異を使用することができます。まず 、我々はGraphiQLの遊び場からそれを行うことができます方法を見てみましょう:createCompany
変異は、オブジェクト引数owner
とリストオブジェクト引数addresses
を持っていることを
mutation createNestedCompany {
createCompany(
owner: {
name: "Mickey"
email: "[email protected]"
}
addresses: [{
street: "A street"
city: "A city"
country: "A country"
contacts: [{
name: "Mickey"
email: "[email protected]"
phone: "+1 23456789"
}]
}, {
street: "B street"
city: "B city"
country: "B country"
contacts: [{
name: "Minney"
email: "[email protected]"
phone: "+9 87654321"
}]
}]
) {
id
owner {
id
}
addresses {
id
contacts {
id
}
}
}
}
注意。 addresses
には、ネストされたcontacts
リストオブジェクトの引数があります。アポロクライアントを使用し
、我々はGraphQL変数を入力引数を指定し、その者は、それがこのケースでどのように見えるかを見てみましょう:
const createNestedCompany = gql`
mutation createNestedCompany(
$owner: CompanyownerUser
$addresses: [CompanyaddressesAddress!]
) {
createCompany(
owner: $owner
addresses: $addresses
) {
id
owner {
id
}
addresses {
id
contacts {
id
}
}
}
}
`
アポロとの突然変異を呼び出すとき、私たちは今、オブジェクトとして変数を指定する必要があります:
const variables = {
owner: {
name: "Mickey"
email: "[email protected]"
},
addresses: [{
street: "A street"
city: "A city"
country: "A country"
contacts: [{
name: "Mickey"
email: "[email protected]"
phone: "+1 23456789"
}]
}, {
street: "A street"
city: "A city"
country: "A country"
contacts: [{
name: "Minney"
email: "[email protected]"
phone: "+9 87654321"
}]
}]
}
と変数との変異を呼び出します。
this.props.createNestedCompany({ variables })
.then((response) => {
console.log('Company, owner and addresses plus contacts created');
}).catch((e) => {
console.error(e)
})
変数タイプCompanyownerUser
および[CompanyaddressesAddress!]
は、の多重度(to-one;対多)、関連モデル(Company
とUser
; Company
とAddress
)と関連分野(owner
; addresses
)。 createCompany
突然変異にナビゲートすると、GraphiQLプレイグラウンドのすべてのタイプ名を見つけることができます。