顶部进度条
可以通过全局状态 progress
来控制页面顶部进度条的显示和隐藏,
这个进度条的进度是不可确定的(indeterminate),意思就是说,它不是从 1 到 100 这样逐步走完,
而是走完了一遍再来一遍,直到你隐藏它。
一般在需要较长时间的时候才需要使用这个进度条,以告知用户当前正在处理某些事情,还没完成。
这个进度条有个延迟特征,如果你设置成显示,然后在 1 秒内又设置成隐藏,那么这个进度条不会显示, 因为一闪而过的意义不大。
使用方法
import { useRecoilState } from "recoil";
import progressState from "~/state/progress";
function X() {
const [progress, setProgress] = useRecoilState(progressState);
const submit = async () => {
try {
setProgress(true);
// 执行一些耗时的操作
// await ...
} catch (err) {
enqueueSnackbar(err.message);
} finally {
setProgress(false);
}
}
}