【发布时间】:2020-12-21 07:00:20
【问题描述】:
我是 apollo 和 graphql 的新手。我尝试同时使用 apollo-codegen 和 graphql-codegen 并且我希望在一个文件中生成所有类型,例如在 graphql-codegen 中,但在 apollo 中它会创建多个文件。
我在使用 graphql-codegen 时遇到的问题是生成的类型不是我获取数据的格式。
当使用 apollo 客户端 useQuery 时,我从后端获取的数据格式为
data: {
queryName : {... actualDataObject }
}
所以 apollo -codegen 的示例查询的输出是:-
export interface Login_logIn {
__typename: "UserPayload";
email: string;
firstname: string;
lastname: string;
}
export interface Login {
logIn: Login_logIn; // logIn is the queryname here
}
但是使用 graphql-codegent 我得到的输出是:-
export type UserPayload = {
__typename?: 'UserPayload';
_id: Scalars['ID'];
email: Scalars['String'];
firstname: Scalars['String'];
lastname: Scalars['String'];
};
是否可以像 apollo codegen 一样输出 graphql-codegen,即格式为:-
export type UserPayload {
logIn : { //logIn is the queryname
__typename?: 'UserPayload';
_id: Scalars['ID'];
email: Scalars['String'];
firstname: Scalars['String'];
lastname: Scalars['String'];
}
}
让它在 useQuery 或 useMutation hook 中变得容易使用?通过使用 graphql-codegen
const [doLogin, {loading, error, data}] = useMutation<UserPayload, UserInputVariables>(
LOGIN,
{
variables: {
...variables,
}
},
);
【问题讨论】:
标签: graphql apollo apollo-client graphql-codegen