У меня есть приложение todo (act-native) с подключением graphql-client
const client = new ApolloClient({
uri: API,
cache: new InMemoryCache()
});
, когда я добавляю новый todo или delete, мне нужно обновить кэш, чтобы изменения могли отображаться без обновления
createTodo({
variables: { text: todo },
update(proxy, result) {
const data = proxy.readQuery({
query: FETCH_TODOS
});
data.getTodos = [result.data.createTodo, ...data.getTodos];
proxy.writeQuery({
query: FETCH_TODOS,
data
});
}
});
}
проблема в том, что мне пришлось вызывать writeQuery внутри компонента элемента. и если я вызвал его в компоненте формы. Ничего не случилось. почему?
обновление этот код работал просто отлично, но createTodo - нет.
const hanglePress = key => {
deleteTodo({
variables: { todoId: key },
update(proxy) {
const data = proxy.readQuery({
query: FETCH_TODOS
});
data.getTodos = data.getTodos.filter(todo => todo.id !== key);
proxy.writeQuery({ query: FETCH_TODOS, data });
}
});
};