用special控制多ablitity实例中,打开多个ability后调这个方法会关闭掉其他的ability-

用special控制多ablitity实例中,打开多个ability后调这个方法会关闭掉其他的ability-

HarmonyOS
2024-05-30 21:18:15
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
day_night

您好,可以看下是否是demo的问题,在设置map的时候,每次的key都是一样的,所以map始终只有一个对象,所以每次只能关一个,可以在注册时加一个id区分,如下:ViewModel中:

export class ViewModel { 
  showData: Test = { left: [] } 
  id:string 
  constructor(id:string) { 
    this.id = id 
    this.showData.left.push(new CloseFile()) 
    Commands.register(ViewModel.regi(this.id)) 
  } 
 
  static regi(id:string):Map<string, CloseFileType> { 
    console.log('demoTest => 创建') 
    let map:Map<string, CloseFileType> = new Map<string, CloseFileType>() 
    let close:CloseFileType = new CloseFileModel() 
    map.set('closeFile'+ id, close) 
    return map 
  } 
}

Commands中:

export class Commands { 
  static CommandsMap: Map<string, CloseFileType> = new Map<string, CloseFileType>() 
 
  static register(map: Map<string, CloseFileType>) { 
    console.log('demoTest => ' + '注册' + map.size) 
    console.log("demotest => set之前" + Commands.CommandsMap.size) 
    map.forEach((value: CloseFileType, key: string) => { 
      Commands.CommandsMap.set(key, value) 
      console.log('demoTest => ' + key) 
    }) 
    console.log("demotest => set之前" + Commands.CommandsMap.size) 
  } 
 
  static execute(id:string) { 
    const command = Commands.CommandsMap.get('closeFile'+ id) 
 
 
    if (!command) { 
      return '' 
    } 
 
    return command.click() 
  } 
} 
//CloseFile中的excute也加上id: 
export class CloseFile { 
  click(id:string) { 
    Commands.execute(id) 
  } 
}
分享
微博
QQ
微信
回复
2024-05-31 20:55:26
相关问题
onehop Device Ability 这个模板咋不见了?
4093浏览 • 1回复 待解决
Ability生命周期回函数有哪些呢?
5459浏览 • 1回复 待解决
HarmonyOS如何控制打开关闭手电筒
286浏览 • 1回复 待解决
xargs命令多个参数实例
9305浏览 • 1回复 待解决