我是阿波罗和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,
}
},
);