0

我正在使用我的服务器请求“帖子”列表,enqueueAndWatch它导致无限刷新循环。

两个查询如下:

query GetOrganizationPosts {
    user {
        organization {
            posts {
                ...post
            }
        }
    }
}

query GetUserPosts {
    user {
        posts {
            ...post
        }
    }
}

fragment post on Post {
    id
    title
    messsage
}

视图模型已初始化,当我refreshPosts()从帖子片段调用时发生无限循环:

init {
    viewModelScope.launch {
            networkClient.apolloClient.
                query(GetOrganizationPostsQuery())
                .watcher().enqueueAndWatch(callback)
            networkClient.apolloClient
                .query(GetUserPostsQuery())
                .watcher().enqueueAndWatch(callback2)
    }
}
fun refreshPosts() {
        networkClient.apolloClient
            .query(GetOrganizationPostsQuery())
            .enqueue(null)
        networkClient.apolloClient
            .query(GetUserPostsQuery())
            .enqueue(null)
}

提前致谢!

4

1 回答 1

0

Apollo-Android 拉取请求中描述的解决方法:https ://github.com/apollographql/apollo-android/issues/2226

添加.responseFetcher(ApolloResponseFetchers.CACHE_ONLY)到任何enqueueAndWatch呼叫。这可以确保观察者在缓存更新时不会执行网络请求。

于 2020-06-26T15:47:48.780 回答