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',
            }
        )
    }
})
阅读 142
评论
    1 个回答
    • 1.4k

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

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

      撰写回答

      登录后参与交流、获取后续更新提醒