Здравствуйте, у меня проблема с React-Apollo ..
Когда я устанавливаю fetchPolicy в кеш-сеть, мой Apollo каждый раз делает новый запрос и не загружает данные из кеша.
Я хочу, чтобы Apollo сначала загрузил данные из кэша, а затем сделал запрос, а затем обновил данные и перезагрузил Компонент, если результат отличается от данных кэша.
const client = new ApolloClient({
connectToDevTools: true,
cache,
link: ApolloLink.from([
stateLink,
new HttpLink({
uri: "..."
})
]),
});
query user($userId: String) {
user(_id: $userId) {
__typename
_id
fullname
username
followed_by_viewer
follows_viewer
edge_followed_by {
count
}
edge_follow {
count
}
}
}
<Query query={GET_USER} variables={{ userId }} fetchPolicy={"cache-and-network"} partialRefetch={false} >
{({ data, loading, error, refetch }) => {
if (error) return <Text>Error</Text>
if (loading) return <Text>Loading</Text>
let user = data.user;
console.log(user);
return (
<ScrollView
refreshControl={
<RefreshControl
refreshing={loading}
onRefresh={refetch}
/>
}>
<View style={[s.gradientBar, { backgroundColor: profileColor }]} />
<View style={s.nameInfos}>
<Text style={s.fullname}>{user.fullname}</Text>
<Text style={s.name}>@{user.username}</Text>
</View>
</ScrollView>
)
}}
</Query>