【发布时间】:2018-09-26 01:02:02
【问题描述】:
我从 aws 的 appsync 服务返回了一个 graphql 查询。 这是查询返回的 json。
{
"data": {
"listPeople": {
"items": [
{
"age": 23,
"id": "123",
"name": "BobTest",
"__typename": "Person"
},
{
"age": 24,
"id": "124",
"name": "JoeTest",
"__typename": "Person"
},
{
"age": 25,
"id": "125",
"name": "JimTest",
"__typename": "Person"
}
],
"__typename": "PersonConnection"
}
}
}
访问items 数组时出错。
尝试通过运行将items 值记录到控制台
https://github.com/idkjs/reason-apollo-question/blob/d38e7fbc33f02ab718c7227958d88f02adba1696/src/Persons.re#L66-L70
| Data(response) =>
Js.log(response##listPeople);
let listPeople = response##listPeople;
let items = response##listPeople##items;
Js.log(items);
产生这个错误:
We've found a bug for you!
/Users/prisc_000/code/REASON/APOLLO/reason-apollo-question/src/Persons.re 69:32-51
67 ┆ Js.log(response##listPeople);
68 ┆ let listPeople = response##listPeople;
69 ┆ let items = response##listPeople##items;
70 ┆ Js.log(items);
71 ┆
This has type:
option({. "items": option(Js.Array.t(option(
{. "age": int, "id": string, "name": string})))
})
But somewhere wanted:
Js.t('a)
ninja: build stopped: subcommand failed.
>>>> Finish compiling(exit: 1)
如何解决此类型错误?
谢谢!
【问题讨论】:
标签: graphql reason bucklescript