我有一个在 Hasura 控制台中创建的表。一些列是整数int
类型,我得到了预期的数据类型:Maybe<Scalars['Int']>
.
但是,有些需要是一个整数数组,所以我在 Hasura SQL 选项卡中创建了它们:
ALTER TABLE my_table
add my_ids integer[];
如果我使用以下查询变量在 GraphiQL 中填充它们,一切正常:
{
"my_ids": "{1200, 1201, 1202}",
}
但是,当我尝试从前端客户端发出相同的请求时,我收到以下错误:A string is expected for type : _int4
。查看数据类型,它与预设(在数据类型下拉列表中(整数类型略有不同:Maybe<Scalars['_int4']>
。
有没有办法像预设的整数类型一样Maybe<Scalars['Int']>
整数数组?或者如果没有,如何解决我的请求为此_int4
类型抛出错误的问题?
Hasura 不能处理数组,但它可以处理数组文字。
我编写了一个函数来帮助您在突变之前将数组转换为数组文字:
const toArrayLiteral = (arr) => (JSON.stringify(arr).replace('[', '{').replace(']', '}'))
...
myObject.array = toArrayLiteral(myObject.array) // will make ['friend'] to {'friend'}
祝你好运