Apollo GraphQL запросы отменяются - PullRequest
0 голосов
/ 11 мая 2018

Я создаю компонент текстового поля впереди типа React, используя Downshift и react-apollo. Когда пользователь печатает, я запрашиваю предложения типа вперед и представляю их под текстовым полем.

typeahead-react-component

К сожалению, этот опыт не проходит гладко. По какой-то причине время от времени Аполлон отменяет более 50 процентов запросов.

cancelled-requests

Я также регистрирую данные ответов, которые доступны для компонента, завернутого в graphql HoC. В желаемом случае состояние загрузка устанавливается на false, и мои данные words доступны. В нежелательном случае состояние loading устанавливается на true, и данные words недоступны. Независимо от желаемого или нежелательного запроса, серверная часть выполняется каждый раз.

Нежелательный случай

undesired-case

Обратите внимание на сетевой статус 1.

желаемый случай

desired-case

Обратите внимание, что networkStatus 7.

Почему apollo отменяет эти запросы? Как это исправить?

1 Ответ

0 голосов
/ 12 мая 2018

Как вы используете компонент более высокого порядка graphql?

Кажется, вы создаете экземпляр этого компонента более высокого порядка в самой функции рендеринга.рендеринг срабатывает много раз, особенно если вы используете.Если повторный рендеринг происходит до того, как запрос был разрешен, старый запрос отменяется.Вы можете избежать этого, используя вместо этого новый компонент Query.Компонент Query можно легко использовать в рендере.Он изящно обрабатывает тех, кто делает перерисовку.

...