其中
class FindRecord < GraphQL::Function
...
argument :id, !types.ID
...
end
GraphQL::ObjectType.define
块中字段定义的这种变体可以正常工作:
field 'd1', DirectoryType, function: FindRecord.new(:directory)
但是对于相同的查询,这失败并显示错误消息“字段'd2'不接受参数'id'”:
field 'd2', DirectoryType do
function FindRecord.new(:directory)
end
定义这些字段后,对于d1
和d2
,target.fields['d?'].function
的值都相同(使用不同的对象ID)。但看起来在块版本中,该函数不会应用于该字段。
当我跳过field
帮助程序并定义如下字段时,它也不起作用:
target.fields[name] = GraphQL::Field.define {
...
function FindRecord.new(:directory)
...
}
我调用函数方法错了吗?任何建议表示赞赏。
答案 0 :(得分:1)
您可能希望在块中使用resolve而不是function(这是field方法的一个选项,而不是块上可用的帮助程序):
for (let i = 0; i < someArr.length; i++) {
console.log(someArr[i]);
}
因为函数通常实现相同的field 'd2', DirectoryType do
resolve FindRecord.new(:directory)
end
方法,所以可以将它们视为call(obj, args, ctx)
,并且您应该能够将它与解析助手一起使用,而不是通常的方式:
Callables