【发布时间】:2019-09-12 13:58:08
【问题描述】:
我什至不太明白能够解决这个问题的错误是什么。检查服务器控制台也没有显示任何描述性错误。我已添加与此问题相关的所有必要代码。
这里是突变:
mutation SaveTrials($event: ID!, $input: [ResultTrialsInputType!]!) {
saveTrials(event: $event, results: $input) {
results {
id
trials
}
}
}
我在后端使用 Graphene (Python),但类型对应如下:
input ResultTrialsInputType {
id: ID
person: ID!
trials: [String]
}
如果重要的话,这里是 Python 代码:
class ResultTrialsInputType(graphene.InputObjectType):
id = graphene.ID()
person = graphene.ID(required=True)
trials = graphene.List(graphene.String)
当我使用上述突变从阿波罗发送数据时,这就是发送到 API 的内容:
{
"operationName": "SaveTrials",
"variables": {
"event": "207e9f27-be66-4564-9c28-ac92ec44235d",
"input": [
{
"id": "8eb80b8b-c93a-44b1-9624-e75436c13780",
"trials": [
"32.1",
"92.2",
"12.1",
"12.2",
"23.2",
""
],
"__typename": "ResultTrialsObjectType",
"person": "a6f18ab5-df23-421e-b916-73e569bf73ad"
}
]
},
"query": "mutation SaveTrials($event: ID!, $input: [ResultTrialsInputType!]!) {\n saveTrials(event: $event, results: $input) {\n results {\n id\n trials\n __typename\n }\n __typename\n }\n}\n"
}
此查询的响应是关于“__typename”的错误:
{
"errors": [
{
"message": "Variable \"$input\" got invalid value [{\"__typename\": \"ResultTrialsObjectType\", \"person\": \"a6f18ab5-df23-421e-b916-73e569bf73ad\", \"id\": \"8eb80b8b-c93a-44b1-9624-e75436c13780\", \"trials\": [\"32.1\", \"92.2\", \"12.1\", \"12.2\", \"23.2\", \"\"]}].\nIn element #0: In field \"__typename\": Unknown field.",
"locations": [
{
"line": 1,
"column": 34
}
]
}
]
}
在我的应用程序中输入参数不是预期的自定义对象数组的任何其他地方。这里有什么交易?我是否以错误的方式设置输入参数?还是我在这里遗漏了什么?
我尝试在输入类型中手动添加__typename;但是,什么也没发生。
谢谢!
编辑:现在我正在检查这个,由于某种原因,__typename 显示为ResultTrialsObjectType,但它应该是ResultTrialsInputType。这个价值是如何产生的?是由 Apollo 生成还是由服务器生成并由 Apollo 获取?
【问题讨论】:
标签: graphql apollo react-apollo apollo-client graphene-python