Ожидаемый результат:
Я пытаюсь повторить запрос после мутации.Это прекрасно работает везде, но у меня есть проблема с этим конкретным запросом.
const alertsSettingsQuery = gql`
query alertsSettingsQuery($issuerRoleNames: [String], $receiverRoleNames: [String]) {
alertsSettings(issuerRoleNames: $issuerRoleNames, receiverRoleNames: $receiverRoleNames) {
...
}
}
`;
Компонент, запрашивающий исходные данные без переменных:
export default compose(
graphql(alertsSettingsQuery, {name: "alertsSettingsData"}),
...,
)(Administration);
Компонент, повторно загружающий данные без переменных:
mutate({
variables: updatedAlert,
refetchQueries: () => [{query: alertsSettingsQuery}]
}).then((data) => {
...
}).catch(err => {
...
});
Фактический результат:
Если я проверяю вкладку сети, данные корректно обновляются и обновляются, но компонент не получает обновленные данные.
Если я используюApollo Devtools, чтобы увидеть, что находится в моем кеше, у меня есть это для исходных данных:
И это из повторного поиска:
Кажется, что эти два идентификатора не идентифицируются одинаково.
Если я изменю свои запросы на повторные запросы на это:
refetchQueries: () => [{query: alertsSettingsQuery, variables: {issuerRoleNames: null, receiverRoleNames: null}}]
Это работает, как и ожидалось.
Я не понимаю, почему мне нужно явно установить переменные на ноль здесь, так как я не делаю этого для любого другого повторного поиска.
Версия
apollo-client@2.3.4 Reaction-Apollo @ <2.1.5>