【问题标题】:React Apollo graphql HOC loading is false but no data fieldReact Apollo graphql HOC 加载为假但没有数据字段
【发布时间】:2019-12-06 18:38:43
【问题描述】:

我正在尝试将数据存储在 apollo 缓存中,并通过 graphql HOC 在我的组件中获取这些数据

这里我初始化 Apollo Client 并将用户数据添加到 apollo 缓存中:

const cache = new InMemoryCache();

const client = new ApolloClient({
  cache,
  resolvers: {}
});
cache.writeQuery({
  query: GET_CURRENT_USER,
  data: {
    userData: {
      id: 1,
      name: "Alexander",
      email: "email@domain.com"
    }
  }
});

const App = () => (
  <ApolloProvider client={client}>
    <Main />
  </ApolloProvider>
);

这是我的 GET_CURRENT_USER 查询:

import { gql } from "apollo-boost";

export const GET_CURRENT_USER = gql`
  query getUserData($id: ID!) {
    userData @client {
      id
      name
      email
    }
  }
`;

在这里我将我的组件包装到 graphql HOC 中:

...
export default graphql(GET_CURRENT_USER)(ProfileScreen);

我正在将 props.data 属性检查到 ProfileScreen 组件的渲染方法中,它被触发了 2 次:

  1. 错误:未定义; 加载:真; 没有 userData 字段

  2. 错误:未定义; 加载:假; 没有 userData 字段

我还检查了 Apollo 缓存并存储了 userData 字段

环境:

  1. "apollo-boost": "^0.4.3",
  2. "react-apollo": "^2.5.8",
  3. "react-native": "0.60.4",
  4. "apollo-cache-inmemory": "^1.6.2",
  5. “反应”:“16.8.6”

【问题讨论】:

    标签: javascript reactjs graphql react-apollo


    【解决方案1】:

    通过将 __typename 字段添加到 userData 对象来修复

    【讨论】:

      猜你喜欢
      • 2020-07-04
      • 2020-01-25
      • 2020-08-20
      • 2019-01-18
      • 2019-03-10
      • 2018-09-19
      • 2020-10-01
      • 2023-02-08
      • 1970-01-01
      相关资源
      最近更新 更多