我有一个突变,可以将待办事项添加到待办事项列表中。
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
}
}
删除正确删除了待办事项并将其从列表中删除,而无需重新获取列表。但是当我添加一个项目时,它会导致重新获取。因为我正在返回待办事项列表,所以这是出乎意料的。有什么问题吗?
因为我的 AddTodo 查询没有请求返回“名称”字段,所以列表查询没有新待办事项的名称,因此被迫重新获取列表查询以获取名称。
将“name”字段添加到 AddTodo 突变中,这样就不会重新获取列表查询。
删除不会导致重新获取,因为它正在删除项目,并且列表不需要有关不存在字段的更多信息。