dmi*_*eev 1 javascript graphql
举例来说,我想使用 GraphQL JavaScript 接口定义一个典型的论坛消息类型:
import {
GraphQLString,
GraphQLObjectType,
} from 'graphql';
const MessageType = new GraphQLObjectType({
name: 'Message',
fields: {
text: { type: GraphQLString },
comments: new GraphQLList(MessageType),
},
});
Run Code Online (Sandbox Code Playgroud)
JavaScript 编译器(好吧,解释器)会抱怨这一点。它会这么说MessageType is undefined。
我们都知道可以使用 GraphQL 语言定义这样的类型:
type Message {
text: String
comments: [Message]
}
Run Code Online (Sandbox Code Playgroud)
如何使用 GraphQL 纯 JavaScript 接口定义这样的类型?
嗯,答案很简单。
您只需传递一个 thunk(不带参数的函数)作为字段,field而不是传递纯 JavaScript 对象。
仅当类型已定义时该函数才会执行,因此它会起作用。
结果代码如下所示:
import {
GraphQLString,
GraphQLObjectType,
} from 'graphql';
const MessageType = new GraphQLObjectType({
name: 'Message',
fields: () => ({ // <-- Notice the function definition
text: { type: GraphQLString },
comments: new GraphQLList(MessageType),
}),
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1914 次 |
| 最近记录: |