react 在循环中依次打开modal怎么做,现在直接打开最后一个忽略前边的了

 item.errors.forEach((items)=>{
     if(items.code==='MISSING_PARENT'){
        emitter.emit(
            'OPEN_MODAL',
            {
                name: 'MISSING_PARENT',
                content: item.person.given_name
            }
        )
    }
    if(items.code==='EXIST_PERSON'){
        emitter.emit(
            'OPEN_MODAL',
            {
                name: 'EXIST_PERSON',
            }
        )
    }
})
阅读 2.3k
1 个回答

可能是框架把一定时间内的操作合并了.加个延时试试.

const sleep = (time) => new Promise((resolve) => setTimeout(resolve, time));

while(item.errors.length){
    await sleep(50)
    const it = item.errors.shift()
    emitter.emit('aaa',{xxx:'',content: it.yyy})
}

另外,如果显示modal的组件是单例模式那得想别的办法.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题