如何通过 AWS AppSync 客户端将包含字符串的变量传递给 GraphQL 查询?
How to pass a variable holding a string to a GraphQL query via the AWS AppSync client?
我正在使用 React JS 应用程序通过 AWS AppSync 客户端和 GraphQL API 将数据提交到云中的 NoSQL Table。我使用 AWS Amplify 自动生成了 GraphQL 操作,现在我正尝试在我的 React 代码中提交以下操作:
(注意和公司只是 React 状态下的字符串值)
createOffer(note, company) {
const input = {
place: company,
title_de: note,
category: "product",
}
return API.graphql(graphqlOperation(mutations.createOffers, {input: input
}));
这会产生异常“[object Object]”
现在如果我像这样直接传递字符串
createOffer() {
const input = {
place: "Example Company ",
title_de: "Example Title",
category: "product",
}
return API.graphql(graphqlOperation(mutations.createOffers, {input: input
}));
它工作正常。
到目前为止,我发现的唯一解决方法是将包含字符串值的变量包装在 JSON.stringify(company) 和 JSON.stringify(note) 中。但是随后相应的数据库条目用双引号 "Example Company" 而不是 Example Company.
引起来
我想避免手动修改自动生成的 GraphQL API 代码,因为我希望它经常更改。
客户端是否有一个选项可以将实际字符串从 React 状态获取到 API 调用中,而无需 GraphQL 将其识别为对象或在数据库中以双引号结尾?
您尝试过模板文字吗?
const input = {
place: `${company}`,
title_de: `${note}`,
category: 'product'
}
当我 运行 在开发控制台中进行快速测试时,这肯定会删除您遇到的额外引号。
我正在使用 React JS 应用程序通过 AWS AppSync 客户端和 GraphQL API 将数据提交到云中的 NoSQL Table。我使用 AWS Amplify 自动生成了 GraphQL 操作,现在我正尝试在我的 React 代码中提交以下操作: (注意和公司只是 React 状态下的字符串值)
createOffer(note, company) {
const input = {
place: company,
title_de: note,
category: "product",
}
return API.graphql(graphqlOperation(mutations.createOffers, {input: input
}));
这会产生异常“[object Object]”
现在如果我像这样直接传递字符串
createOffer() {
const input = {
place: "Example Company ",
title_de: "Example Title",
category: "product",
}
return API.graphql(graphqlOperation(mutations.createOffers, {input: input
}));
它工作正常。 到目前为止,我发现的唯一解决方法是将包含字符串值的变量包装在 JSON.stringify(company) 和 JSON.stringify(note) 中。但是随后相应的数据库条目用双引号 "Example Company" 而不是 Example Company.
引起来我想避免手动修改自动生成的 GraphQL API 代码,因为我希望它经常更改。
客户端是否有一个选项可以将实际字符串从 React 状态获取到 API 调用中,而无需 GraphQL 将其识别为对象或在数据库中以双引号结尾?
您尝试过模板文字吗?
const input = {
place: `${company}`,
title_de: `${note}`,
category: 'product'
}
当我 运行 在开发控制台中进行快速测试时,这肯定会删除您遇到的额外引号。