方案一:适合一次性展示一个弹框,各个弹框没有依赖关系
export default () => {
const modalBox = useRef(null)
const modal2 = useCallback(async () => {
}, [])
const modal1 = useCallback(() => {
const dom = modalBox.current
if (a) {
// 不显示modal
return Promise.resolve()
}
// 显示modal
return Promise.reject()
}, [resumeNotPass])
// 弹框执行函数
const ModeFun = useCallback(async () => {
const showModel = [modal1, modal2]
for (const showModelItem of showModel) {
try {
await showModelItem()
} catch {
break
}
}
}, [modal1, modal2])
useEffect(() => {
ModeFun()
}, [ModeFun])
return <div className="modal-box-up" ref={modalBox} />
}```
方案二
const modals = [
modal1,
modal2,
modal3,
modal4,
];
export default function showModal() {
modals.reduce((prev, next) => prev.then(next), Promise.resolve(false));
}
该博客探讨了两种在React中管理多个独立弹框的方案。方案一使用`useCallback`和`useEffect`实现弹框的条件展示,并通过循环执行。方案二利用数组`reduce`方法按顺序执行多个模态。内容涉及状态管理、函数组件和异步操作。
4031

被折叠的 条评论
为什么被折叠?



