Как сделать Реагировать Аполлон автоматически обновляет кэш данными из ответа на мутацию, которая имеет частичные ошибки?
В Запрос я могу передатьопция errorPolicy: 'all'
, чтобы заставить это работать.Однако политика «all» и «ignore» не помогает в мутации, кэш не обновляется.
Версия:
apollo-client: 2.6.4
react-apollo: 3.1.1
Это первый запрос, который будет установленinfo:
fragment PurchasedCount on PurchasedCount {
id
purchased
}
query getSet {
id
limit
purchasedCount { ...PurchasedCount }
}
После этого я использую мутацию для покупки набора:
fragment Purchase on Purchase {
createdAt
}
mutation purchase {
purchase {
purchase { ...Purchase }
purchasedCount { ...PurchasedCount }
}
}
Если кто-то еще купил набор до лимита, ответ вернет ошибку превышения лимита.вместе с текущим приобретенным значением счетчика:
{
data: {
purchase: {
purchasedCount: { id: 3, purchased: 10 },
purchase: null
}
},
errors: [{
message: "limit_exceeded"
...
}]
}
Я ожидал, что значение кэша для purchased
будет автоматически обновлено до 10
.Однако он обновляется только в том случае, если в ответах нет ошибок.Я должен вручную writeFragment
в этом случае.
Есть ли лучший способ сделать это?