Итак, у меня есть база данных, в которой хранятся пользователи. Когда кто-то входит на мой сайт, он сохраняет в кэше apollo пользователя как currentUser . И я храню только его идентификатор.
Поэтому я сделал запрос на получение пользователя, передав его идентификатор:
query {
user(id: "id") {
id
username
avatar
}
}
Но каждый раз, когда я хочу получить данные для этого пользователя, мне нужно сделать два запрос (первый локально, чтобы получить обратно свой идентификатор из кэша, а второй на сервер).
const GET_CURRENT_USER = gql`
query getCurrentUser {
currentUser @client
}
`;
const GET_USER_DATA = gql`
query getUser($id: String!) {
user(id: $id) {
id
username
avatar
}
}
`;
const currentUserData = useQuery(GET_CURRENT_USER);
const { currentUser } = currentUserData.data;
const { data, loading } = useQuery(GET_USER_DATA, {
variables: { id: currentUser.id },
fetchPolicy: "cache-and-network"
});
Здесь я могу свести его только к одному запросу (один к сервер)?