我希望对乐观 ui 模式的“我的”实现进行简短的代码审查。我正在使用 SWR、immer 和定制的 fetch 挂钩来完成大部分繁重的工作。但是,我不确定这是否确实是这样做的方法。尤其是在为乐观生成的项目分配临时 ID 时。我不应该在某个地方清除它吗?会不会引起问题?
const spawn = async flavour => {
const payload = {
planId: flavour.id,
name: 'test',
description: '',
}
mutate(
'/account/instances',
produce(draft => {
draft.push({
...payload,
id: uuid(),
plan: {name: flavour.name},
state: {status: 'PENDING'},
image: {name: flavour.image.name},
})
}),
false
)
mutate(
'/account/instances',
await doFetch('/account/instances', 'post', payload)
)
}
谢谢!