Я мигрирую из 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. Любая помощь очень ценится.