湖上湖
2022-06-05 16:06:38
背景:我在前端構(gòu)建了一個帶有單元格編輯的數(shù)據(jù)網(wǎng)格。每次編輯單元格中的字段時,它都會立即在服務(wù)器上更新。所以我認(rèn)為在我的突變中只提交那個單一的字段是一個好習(xí)慣。這將減少網(wǎng)絡(luò)流量大小,并且后端將更快地處理更新(這當(dāng)然是非常高水平的所有優(yōu)化)。這意味著我使用 GraphQL 突變發(fā)送的參數(shù)是可變的。您可以通過 GraphQL 變量很好地注入?yún)?shù)值,但是什么是鍵的好方法?為了可視化問題,這是我希望的:mutation($id: 1, $field: "first_name", $value: "John") { updateClient( id: $id, $field: $value ) { id }}
1 回答

郎朗坤
TA貢獻(xiàn)1921條經(jīng)驗 獲得超9個贊
不,不幸的是,參數(shù)名稱在查詢中不能是可變的。慣例是使用輸入對象類型進(jìn)行突變來規(guī)避這個問題:
type Mutation {
updateClient(id: ID!, input: ClientInput!): Client
}
input ClientInput {
a: String
b: Number
…
}
(而不是updateClient(id: ID!, a: String, b: Number, …))
使用這種模式,您可以將類型的對象ClientInput作為參數(shù)傳遞給您的突變:
query(`mutation($id: ID!, $input: ClientInput!) {
updateClient(id: $id, input: $input) {
id
}
}`, {id: 1, input: {["first_name"]: "John"}})
我真的希望 GraphQL 中有某種參數(shù)傳播語法來使這種嵌套變得不必要。
添加回答
舉報
0/150
提交
取消