Как использовать непредсказуемые аргументы мутации JSON при использовании директивы @client (локальное состояние)? - PullRequest
0 голосов
/ 18 апреля 2019

Я мигрирую из Redux в клиент Apollo с локальным состоянием, используя директиву @client. Самая большая проблема, с которой я сталкиваюсь, заключается в том, что я не нахожу примеров, показывающих, как использовать JSON в качестве аргументов с помощью директивы @client на клиенте. Я предполагаю, что он должен работать с использованием скалярного типа graphql-type-json, но нет примера, объясняющего, как использовать его в сочетании с директивой @client клиента Apollo.

Я хотел бы сделать что-то вроде этого (рассмотрим тип JSON аргумента modalProps):

export const MUTATION_SHOW_MODAL = gql`
  mutation ShowModal($modalType: String!, $modalProps: JSON! ) {
      showModal(modalType: $modalType, modalProps: $modalProps) @client
  }
`

const resolvers = {
  Mutation: {
    showModal: (root: any, { modalType, modalProps }: any, { cache }: any) => {
      const data = {
            modalType,
            modalProps
      }
      cache.writeData({ data })
      return null
    }
  },
}

Я ищу пример, показывающий, как использовать случайный JSON в кэше / хранилище, как это делается в Redux. Любая помощь очень ценится.

...