Apollo GraphQL: несколько запросов в одном компоненте?

У меня есть компонент, который должен запрашивать две совершенно разные таблицы. Как в этом случае должны выглядеть схема, запрос и преобразователь? Я погуглил, но пока не нашел примеров. Спасибо заранее за любую информацию.

ОБНОВЛЕНИЕ: Я вижу, что в Slack есть способ использовать compose для этой цели, например:

export default compose(
  graphql(query1, 
  ....),
  graphql(query2, 
  ....),
  graphql(query3, 
  ....),
  withApollo
)(PrintListEditPage)

Есть ли способ иметь несколько таких объявлений:

const withMutations = graphql(updateName, {
  props({ mutate }) {
    return {
      updatePrintListName({ printListId, name }) {
        return mutate({
          variables: { printListId, name },
        });
      },
    };
  },
});

... которые предшествуют звонку на export default compose?


person VikR    schedule 29.10.2016    source источник


Ответы (1)


Функция graphql принимает необязательный второй аргумент, который позволяет назначить псевдоним переданному имени свойства. Если у вас есть несколько мутаций, вы можете использовать свойство name для переименования mutate по мере необходимости:

import { graphql, compose } from 'react-apollo'

export default compose(
  graphql(mutation1, { name: 'createSomething' }),
  graphql(mutation2, { name: 'deleteSomething' }),
)(Component)

Для получения дополнительных сведений см. полный API.

person Daniel R.    schedule 30.10.2016
comment
Это устарело. react-apollo больше не экспортирует compose. - person Adrian Bartholomew; 28.10.2019