Appearance
useMutationWithLock
▸ useMutationWithLock(fn, mutationOptions?): UseMutationResult<unknown, Error, unknown, unknown> & { run: () => Promise<any> }
结合 useMutation + useLock 的优势
- 可对异步函数进行加锁,fn 必须使用异步函数,否则会导致锁定状态失效
- 可以获取函数的执行状态,利用 useMutation 的 isPending 状态来控制 Spin 等
参数
| Name | Type |
|---|---|
fn | (any: any) => Promise<any> |
mutationOptions? | UseMutationOptions<any, Error, void, any> |
返回值
UseMutationResult<unknown, Error, unknown, unknown> & { run: () => Promise<any> }
示例
ts
export default function Demo() {
const {run: deleteSomething, isPending: isDeletingSomething} =
useMutationWithLock(() => {
return io.deleteSomething()
})
return (
<Button
loading={isDeletingSomething}
size="small"
onClick={deleteSomething}
>
删除
</Button>
)
}