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

36 天前
 yxcoder

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 ,或者有什么其他更好的办法?

500 次点击
所在节点    TypeScript
4 条回复
kyuuseiryuu
36 天前
首先,ids.forEach 会一次性弹出 ids.length 个弹窗,得改成 for loop 来实现。
如果你用 antd 可以这么玩:

const confirm = () => new Promise(resolve => {
----Modal.confirm({
--------onOk: resolve,
----});
});
shizhibuyu2023
36 天前
这种问 gpt 可以秒出答案
Maboroshii
36 天前
搭车问下,如果这种问题 gpt 秒出答案,gpt 的能力是来自于它“理解了”js, react 文档,还是它的训练集里有类似的问题和解答
urdad
35 天前
@Maboroshii 完全理解了,因为他已经可以创造你需要的新函数了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1040384

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX