TypeError-未定义不是对象(评估'c.currentObservable.query.refetch')。在本地反应

时间:2020-06-18 04:29:32

标签: reactjs react-native react-hooks react-apollo

我的代码运行良好,但是在快速引用并使用refreshControl刷新后,我在React Native中遇到了此错误

TypeError-未定义不是对象(正在评估'c.currentObservable.query.refetch')。

Check error Image here

这是我的代码

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>

1 个答案:

答案 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'
})