我有一个反应本机应用程序。
graphQl中的正确语法是什么,以将变量传递到 customercreate ?
const url = 'https://xxxx.myshopify.com/api/graphql';
const query = `
var variable = {
"input": {
"email": "test@test.com",
"password": "pass"
}
}
mutation customerCreate($input: CustomerCreateInput!) {
customerCreate(input: $input) {
userErrors {
field
message
}
customer {
id
}
}
}
`;
fetch(url, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ query: query }),
})
.then(res => res.json())
.then(res => console.log(res.data));
.catch(err => {
console.log('-- gql err --')
console.error(err);
})
将变量传递到突变的一种方法可以是做:
const url = 'https://xxxx.myshopify.com/api/graphql';
const query = `
mutation customerCreate($input: CustomerCreateInput!) {
customerCreate(input: $input) {
userErrors {
field
message
}
customer {
id
}
}
}
`;
fetch(url, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
query: query,
variables: {
input: {
email: "test@test.com",
password: "pass"
}
},
}),
})
.then(res => res.json())
.then(res => console.log(res.data));
.catch(err => {
console.log('-- gql err --')
console.error(err);
})
,只需确保JSON.stringify
中的variables
对象必须匹配CustomerCreateInput
类型。