Как обновить кеш для реакции-аполлона-хука после мутации? - PullRequest
1 голос
/ 18 мая 2019

Я пытаюсь реализовать обновление кэша после мутаций для реакции-apollo-hooks.

const onDeleteHandler = useMutation(DELETE_POST, {
        update: (proxy, mutationResult) => {
            /* custom update logic */
            try {
                const { deletePost } = mutationResult.data;
                const postFeed = proxy.readQuery({
                    query: GET_POSTS, variables
                })
                console.log("postFeed", postFeed)
                proxy.writeQuery({ query: GET_POSTS })
            }
            catch(error){
                console.log("Cache update error", error)
            }
          },
        })

В настоящее время я получаю следующее сообщение об ошибке:

Ошибка записи результата для сохранения по запросу "kind": "SelectionSet", "selections": [{"вид ":" поле " "имя": { "вид": "имя", "значение": "идентификатор"}, "аргументы": [], "директива": []}, { "вид":"поле " "имя": { "вид": "имя", "значение": "имя"}, "аргументы": [], "директива": []}, { "вид": "поле","имя ": {" вид ":" имя», "значение": "LastName"}, "аргументы": [], "директивы": []}, { "вид": "поле", "имя": {"вид": "название", "значение": "__ Ьурепат"}}]}}, { "вид": "поле", "название": { "вид": "название", "значение": "__ Ьурепат"}}]}}]}}], "loc": {"start": 0, "end": 434}

Я догадываюсь, что методу writeQuery () нужна вторичная переменная, такая какследующее:

proxy.writeQuery({ query: GET_POSTS, data })

Но я не уверен, что должно быть включено, или если это даже проблема

Мой запрос на стороне клиента такой:

export const GET_POSTS = gql`
    query Posts($query: String, $skip: Int, $first: Int, $orderBy: UserOrderByInput){
        posts (
            query: $query
            skip: $skip
            first: $first
            orderBy: $orderBy
        ){
            id
            title
            body
            location
            published
            author {
                id
                firstName
                lastName
            }
        }
    }
`

И переменные:

const variables = { ...queryVariables, query: value.state.searchTerm, orderBy: filter }
...