Я широко использую Apollo в довольно большом приложении React, которое я создаю, и несколько раз сталкивался с одним и тем же ограничением.
Я хочу выполнить запрос только при монтировании компонента, чтобы изменение этого подмаршрута компонента не приводило к повторному запуску запроса. Я также действительно хочу сохранить шаблон контейнера, в котором я объявляю свой запрос в контейнере, оборачиваю свой компонент и забываю об этом, чтобы сам мой компонент оставался чистым от любого материала Apollo. До сих пор мне удавалось это сделать, создав собственный компонент Apollo высокого порядка, который принимает компонент, запрос и его параметры и возвращает новый компонент, который автоматически запускает queryData на componentDidMount. Вот код. Затем я использую его так: apolloQueryHOC(MyComponent, queryOptions);
Но в новом компоненте я начал реализовывать разбиение по страницам, и этот подход просто не работает / становится слишком уродливым для сложной логики разбиения по страницам, которую я реализовал. Дело в том, что это работает как шарм, когда я использую базовый контейнерный подход Apollo. Но он работает при каждом изменении маршрута / реквизита.
Итак, у меня вопрос: есть ли способ запустить "контейнерный" запрос только при монтировании, кроме использования withApollo
и т. Д.?