proxy.writeQuery странное поведение - PullRequest
0 голосов
/ 01 февраля 2020

У меня есть приложение 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 });
      }
    });
  };
...