apollo-link-state cache.writedata 导致缺少字段警告

标签 apollo react-apollo

当我在我的客户端上调用一个突变时,我收到以下警告:

writeToStore.js:111 Missing field updateLocale in {}



这是我的状态链接:
const stateLink = withClientState({
  cache,
  resolvers: {
    Mutation: {
      updateLocale: (root, { locale }, context) => {
        context.cache.writeData({
          data: {
            language: {
              __typename: 'Language',
              locale,
            },
          },
        });
      },
    },
  },
  defaults: {
    language: {
      __typename: 'Language',
      locale: 'nl',
    },
  },
});

这是我的组件:
export default graphql(gql`
  mutation updateLocale($locale: String) {
    updateLocale(locale: $locale) @client
  }
`, {
    props: ({ mutate }) => ({
      updateLocale: locale => mutate({
        variables: { locale },
      }),
    }),
  })(LanguagePicker);

我错过了什么?

最佳答案

我收到了同样的警告,并通过从变异方法返回数据来解决它。

updateLocale: (root, { locale }, context) => {

  const data = {
    language: {
      __typename: 'Language',
      locale,
    }
  };
  context.cache.writeData({ data });
  return data;
};

关于apollo-link-state cache.writedata 导致缺少字段警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48005732/

相关文章:

reactjs - 使用 native react 在 apollo 客户端中调用另一个查询 onComplete

reactjs - React apollo 客户端 api 调用两次

vue.js - 创建新数据后如何更新 Strapi GraphQL 缓存?

javascript - 数据存在或不存在时渲染的最佳方式?

angular - 当 Apollo GraphQL 失败并出现错误时显示 MatSnackBar 消息

javascript - 在 Jest 测试用例中使用 React Apollo 时出现 "Cannot read property _location of null"

react-native - React-native Android 应用程序发布版本上的 Graphql 网络错误

websocket - 如何将 Apollo 客户端与 AppSync 结合使用?

javascript - 无法转换/规范化/修改 GraphQL 查询的响应 - Apollo 客户端

graphql - 更新特定列表/数组索引的 Apollo 本地缓存