我在React项目中使用apollo-client
来管理UI状态。我为阿波罗突变定义了一种模式类型,但似乎不起作用。
下面是我创建apollo client
实例的方法。
const cache = new InMemoryCache();
export const createClient = () => {
return new ApolloClient({
cache,
resolvers: {
Mutation: {
...alertResolvers
},
},
typeDefs: [alertTypeDefs]
});
};
下面的代码是类型架构定义。如您所见,我已经创建了showErrorAlert
的{{1}}返回类型。
Alert
我使用以下代码发送变异。如您所见,它没有在返回对象中返回export const alertTypeDefs = gql`
type Alert {
id: ID!
message: String!
type: String!
duration: Int!
}
extend type Mutation {
showErrorAlert(message: String!): Alert
}
`;
。但是该应用程序可以正常工作。看来类型对应用程序没有影响。
duration
答案 0 :(得分:0)
来自docs:
您可以选择通过ApolloClient构造函数typeDefs参数或本地状态API setTypeDefs方法来设置要与Apollo Client一起使用的客户端架构... 该架构不像以前那样用于验证在服务器上运行,因为用于模式验证的graphql-js模块将大大增加捆绑包的大小。相反,您的客户端模式用于Apollo Client Devtools中的自省,您可以在其中使用GraphiQL探索您的模式。
换句话说,为本地状态提供typeDefs
的唯一目的是可以通过Apollo Client Devtools中的GraphiQL查询本地状态。
没有针对本地状态的类型验证,尽管如果缓存中对象的一般形状与请求的形状不匹配,则客户端将抛出该异常。