我想乐观地更新待办事项。我尝试了以下方法。这意味着在Api调用完成之前,我想在UI上查看更新的项目。
company ghacct revenue other stay nights
33 JOINT LTD 10010205687 30 20 2 2
3B GLOBAL 10010350619 30 2 1 2
3E FASHION 10010244145 15 3 1 6
3P INT'L 10010112089 20 10 2 12
在这里,const [mutate] = useMutation(
(newTodo) => axios.put(`http://localhost:7777/api/${todo._id}`, newTodo),
{
onMutate: (newTask) => {
// console.log({ newTask });
console.log(newTask.task);
// Cancel any outgoing refetches (so they don't overwrite our optimistic update)
queryCache.cancelQueries(['tasks', newTask.task]);
// Snapshot the previous value
const previousTask = queryCache.getQueryData(['tasks', newTask.task]);
// Optimistically update to the new value
queryCache.setQueryData(['tasks', newTask.task], newTask);
return () =>
queryCache.setQueryData(['tasks', newTask.task], previousTask);
},
onError: (error, newTask, rollback) => {
// If there is an errror, then we will reset the tasks to previous tasks
rollback();
},
onSettled: (data, error, newTask) => {
queryCache.refetchQueries('tasks');
queryCache.refetchQueries(['tasks', newTask._id]);
},
}
);
是我在调用newTodo
函数时传递的更新的待办事项。
mutate
但是,更新的项目在API调用完成之前未显示。
我在这里想念什么?