Я пробую Apollo и использую следующий соответствующий код:
const withQuery = graphql(gql`
query ApolloQuery {
apolloQuery {
data
}
}
`);
export default withQuery(props => {
const {
data: { refetch, loading, apolloQuery },
} = props;
return (
<p>
<Button
variant="contained"
color="primary"
onClick={async () => { await refetch(); }}
>
Refresh
</Button>
{loading ? 'Loading...' : apolloQuery.data}
</p>
);
});
Сервер задерживается на 500 мс перед отправкой ответа с { data: `Hello ${new Date()}` }
в качестве полезной нагрузки. Когда я нажимаю кнопку, я ожидаю увидеть Loading...
, но вместо этого компонент по-прежнему говорит Hello [date]
и перерисовывается через полсекунды.
Согласно это , networkStatus
должно быть 4 (refetch
), и поэтому loading
должно быть истинным. Мои ожидания неверны? Или что-то в отношении кеширования не упоминается в документах React Apollo?
Шаблон проекта, который я использую, использует SSR, поэтому первоначальный запрос происходит на сервере; в браузере происходит только повторная загрузка - только если это может изменить ситуацию.