Apollo 客户端在添加突变后重新获取查询,但不是删除

问题描述 投票:0回答:1

我有一个突变,可以将待办事项添加到待办事项列表中。

mutation AddTodo($data: AddTodoInput!) {
              addTodoToList(data: $data) {
                id
                todos{
                  id
                }
              }
            }

我有另一个删除待办事项的突变:

mutation DeleteTodo($data: DeleteTodoInput!) {
              deleteTodoFromList(data: $data) {
                id
                todos{
                  id
                }
              }
            }

这是列表的查询:

query List{
    id,
    todos {
       id
       name
    }
              
}

删除正确删除了待办事项并将其从列表中删除,而无需重新获取列表。但是当我添加一个项目时,它会导致重新获取。因为我正在返回待办事项列表,所以这是出乎意料的。有什么问题吗?

angular ionic-framework apollo-client
1个回答
0
投票

因为我的 AddTodo 查询没有请求返回“名称”字段,所以列表查询没有新待办事项的名称,因此被迫重新获取列表查询以获取名称。

将“name”字段添加到 AddTodo 突变中,这样就不会重新获取列表查询。

删除不会导致重新获取,因为它正在删除项目,并且列表不需要有关不存在字段的更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.