我的代码运行良好,但是在快速引用并使用refreshControl刷新后,我在React Native中遇到了此错误
TypeError-未定义不是对象(正在评估'c.currentObservable.query.refetch')。
这是我的代码
const getTopics = useQuery(getAllTopicsSchema);
const [refreshing, setRefreshing] = React.useState<boolean>(false);
<ScrollView
refreshControl={
<RefreshControl
refreshing={refreshing}
onRefresh={() => {
setRefreshing(true);
getTopics.refetch().then((res: any) => { setRefreshing(false)).finally(() => setRefreshing(false));
}} />
}>
{
getTopics.data && getTopics.data.findAllTopic.map((res: Topic) => <View><Text>{JSON.stringify(res)}</Text></View>)
}
</ScrollView>
答案 0 :(得分:0)
我不确定这是否会有所帮助,或者您的问题是否有所不同,但我在遇到类似问题时发现了 this reddit post,并且已为我解决,因此我将其添加到此处供人们使用将来或与 react native 和 apollo 有类似问题。
您需要检查您的 ApolloClient 配置,如评论所述:
<块引用>uri 不能是本地主机,而必须是您设备的本地 IP 地址。我花了几个小时才弄明白。
例如,如果您的配置类似于
const client = new ApolloClient({
...configRest,
uri: 'http://localhost:4000/graphql'
})
您需要将其更改为
const client = new ApolloClient({
...configRest,
uri: 'http://YOUR_IP_ADDRESS:4000/graphql'
})