У меня состояние по умолчанию определено так:
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
.