Как отделить запросы graphql с помощью клиента apollo? - PullRequest
0 голосов
/ 18 июня 2019

РЕДАКТИРОВАТЬ: я пропустил тот факт, что я использовал getSpotSearchResponse в другом месте без передачи объекта параметров. Пример ниже должен работать.

Я пытаюсь отделить запросы graphql от друг друга, передавая параметры с помощью частично примененной функции. Однако я получаю следующее предупреждение:

Warning: Functions are not valid as a React child. This may happen if you return a Component instead of <Component /> from render. Or maybe you meant to call this function rather than return it.

Представительные компоненты, связанные с запросом, объявленным в getSpotSearchResponse.js, не отображаются (как и ожидалось). Как бы вы обошли эту проблему?

SpotGridContainer.js

export const SpotGridContainer = compose(
  getSelectedPlace,
  getSpotSearchResponse({
    variables: ({ SelectedPlace }) => ({
      input: {
        center: SelectedPlace 
        // contains the result from GET_SELECTED_PLACE
      }
    })
  }),
)(SpotGrid);

getSelectedPlace.js

SelectedPlace является результатом запроса GET_SELECTED_PLACE и передается в качестве реквизита для следующего graphql HOC.

export const getSelectedPlace = graphql(GET_SELECTED_PLACE, {
  props: ({ data: { SelectedPlace } }) => ({ SelectedPlace })
});

getSpotSearchResponse.js

Объект параметров передается из SpotGridContainer.js и возвращается графическая HOC.

export const getSpotSearchResponse = options =>
  graphql(GET_SPOT_SEARCH_RESPONSE, {
    props: ({ data: { spots } }) => ({ spots }),
    options
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...