当从 GraphQL Server 查询数据时,urql 添加一个 _typename 字段来跟踪缓存:
{
__typename "Book"
name "test"
description "the book"
id "hPl39w4rzc2HZxkfHDyj"
auther "John Doe"
}
我想更新这个对象并将其保存回数据库。当useMutation
函数被调用时__typename
也会被传递,因为它不是服务器模式的一部分,所以会导致错误:
Field \"__typename\" is not defined by type
我知道在调用 useMutation 之前我可以做这样的事情:
delete input.__typename;
但我想知道在 urql 中是否有更好的全局处理方法?例如,在 apollo-client 中,您可以使用 ApolloLink 在更新之前从所有变量中删除 __typename