Apollo GraphQL - 数据有时是未定义的,它保持这样

Apollo GraphQL - data is SOMETIMES undefined and it stays like that

有时 Apollo Client 决定获取数据,有时它给我 undefined 并且它保持如此 - 即使查询完全在后端工作并且在调试器中我看到查询已启动。为什么?控制台没有错误,一切正常。

编辑:如果我启用快速刷新并更改组件中的某些内容,它将神奇地获取数据,但几乎从不在第一个应用程序渲染时获取数据。

我用的是 React-Native。

const TEST = gql`
    query NotesFetch {
      NotesFetch {
        notes {
          description
          id
          status
          images {
            filename
            mimetype
            encoding
            uri
          }
          timestamp
          username
        }
      }
    }
  `;

  const { loading, error, data } = useQuery(TEST);

  console.log(data) - sometimes okay, sometimes it stays undefined and doesn't change

组件:

     <View style={styles.cards}>
      {data && data.NotesFetch.notes &&
          data.NotesFetch.notes.map((p: any) =>  <NotesCard archive={true} key={p.id} {...p} />
        )
      }
    </View>

问题直接来自 Apollo Client 库以及它如何处理 React Native 的可观察对象 - 简而言之。将其更新到最新版本,因为它已于 2022 年 5 月 16 日更新 - 3.6.4.

Provide @apollo/client//*.cjs.native.js versions of every @apollo/client//*.cjs bundle (including dependencies ts-invariant and zen-observable-ts) to help React Native's Metro bundler automatically resolve CommonJS entry point modules. These changes should render unnecessary the advice we gave in the v3.5.4 section below about metro.config.js. @benjamn in #9716