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
有时 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