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的组件是单例模式那得想别的办法.

推荐问题