V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yxcoder
V2EX  ›  TypeScript

react 如何优雅的实现批量删除+二次确认

  •  
  •   yxcoder · 227 天前 · 1247 次点击
    这是一个创建于 227 天前的主题,其中的信息可能已经有所发展或是发生改变。

    react

    我在实现这么一个批量删除功能

    但是批量删除中会有某些内容需要弹出二次确认弹框

    我希望能够通过 promise 实现链式的操作

    const delete = (ids: string[]) => {
      ids.forEach(async(id)=>{
        await deleteOne(id)
      })
    }
    
    const deleteOne = async(id) => {
      /** dosomething **/
      if(await confirm(id)){
        /** do delete **/
      }
    }
    
    const confirm = async(id){
      /** 这里我要怎么实现 **/
    }
    

    注意:这里的 confirm 需要弹出二次确认弹框并返回 promise ,或者有什么其他更好的办法?

    4 条回复    2024-05-14 06:31:33 +08:00
    kyuuseiryuu
        1
    kyuuseiryuu  
       227 天前
    首先,ids.forEach 会一次性弹出 ids.length 个弹窗,得改成 for loop 来实现。
    如果你用 antd 可以这么玩:

    const confirm = () => new Promise(resolve => {
    ----Modal.confirm({
    --------onOk: resolve,
    ----});
    });
    Xu3Xan89YsA7oP64
        2
    Xu3Xan89YsA7oP64  
       227 天前
    这种问 gpt 可以秒出答案
    Maboroshii
        3
    Maboroshii  
       227 天前
    搭车问下,如果这种问题 gpt 秒出答案,gpt 的能力是来自于它“理解了”js, react 文档,还是它的训练集里有类似的问题和解答
    urdad
        4
    urdad  
       226 天前
    @Maboroshii 完全理解了,因为他已经可以创造你需要的新函数了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1025 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 20:36 · PVG 04:36 · LAX 12:36 · JFK 15:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.