Как передать объект в состояние Apollo Link? - PullRequest
0 голосов
/ 30 октября 2018

У меня состояние по умолчанию определено так:

const defaults = {
    activeModal: {
        __typename: 'ActiveModal',
        currentModal: null,
        orderItem: null
    }
}

Тогда у меня есть преобразователь мутаций:

openModal: (_, { currentModal, orderItem }, { cache }) => {
    const data = {
        activeModal: {
            __typename: 'ActiveModal',
            currentModal,
            orderItem
        }
    }
    cache.writeData({ data })

Тогда у меня мутация:

export const OPEN_MODAL_MUTATION = gql`
  mutation OPEN_MODAL_MUTATION($currentModal: String!, $orderItem: Json) {
    openModal(currentModal: $currentModal,orderItem: $orderItem) @client 
  }
`

Я не уверен насчет этого $orderItem: Json, хотя так как orderItem - это объект, который я хочу передать. Это правильно?

Тогда у меня есть моя рендеринг мутации:

<Mutation
    mutation={OPEN_MODAL_MUTATION}
    variables={{ currentModal: 'OrderDetailsModal', orderItem: { ...orderItem } }}
>
... onClick mutation...
</Mutation>

currentModal прекрасно обновляет глобальное состояние, но я не могу передать этот orderItem объект. Если я это сделаю, то есть orderItem: orderItem.id, я получу идентификатор, но ничего не получу, когда передам весь объект orderItem.

...