我是阿波罗和图形库的新手。我尝试同时使用阿波罗码原和graphql-码元,我希望在一个文件中生成所有类型,比如graphql,但是在阿波罗中它会创建多个文件。
我在使用graphql时遇到的问题是生成的类型不是我获得数据的格式。
在使用阿波罗客户端useQuery时,我从后端获得的数据格式为
data: {
queryName : {... actualDataObject }
}因此,阿波罗-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-编码,我得到的输出是:-
export type UserPayload = {
__typename?: 'UserPayload';
_id: Scalars['ID'];
email: Scalars['String'];
firstname: Scalars['String'];
lastname: Scalars['String'];
};是否有可能使graphql-codegen输出类似于阿波罗可待因I,即格式为:-
export type UserPayload {
logIn : { //logIn is the queryname
__typename?: 'UserPayload';
_id: Scalars['ID'];
email: Scalars['String'];
firstname: Scalars['String'];
lastname: Scalars['String'];
}
}这样就很容易在useQuery或useMutation钩子中使用?使用graphql-码元
const [doLogin, {loading, error, data}] = useMutation<UserPayload, UserInputVariables>(
LOGIN,
{
variables: {
...variables,
}
},
);发布于 2020-09-02 12:00:10
您需要将typescript-operations插件添加到codegen.yml中。
generates:
types.ts:
plugins:
- typescript
- typescript-operations并确保已将documents属性设置为指向查询所在的位置。
这将为每个操作生成两个额外的类型--一个用于查询响应,另一个用于变量--然后这两个类型都可以传递给您的钩子。
export type LoginMutationVariables = Exact<{ ... }>;
export type LoginMutation = (
{ __typename?: 'Mutation' }
& { logIn: ... }
);https://stackoverflow.com/questions/63699924
复制相似问题