HarmonyOS 定义组件TabList,在一个页面同时使用两个时出现问题

封装了一个自定义组件tablist,在一个页面中有两个地方有用到,发现第二个tab会有问题,感觉会受第一个tab影响,如果把第一个tab注释,第二个tab也能正常,详细效果见截图

HarmonyOS 定义组件TabList,在一个页面同时使用两个时出现问题-鸿蒙开发者社区

HarmonyOS
2024-08-30 09:58:28
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
zbw_apple

两个Tab同时使用受影响的原因是TabList.ets中Tab子组件内部id不唯一,通过getInspectorByKey方法传id名获取组件信息,计算margin有误导致。

建议修改id唯一。这边提供一个修改方式,伙伴可参考,也可根据项目需求再做修改

TabList.ets修改点

1.组件可以接受一个@Prop tabName: string;

2.Tab组件修改 id为

.id(tabIndex.toString()+this.tabName)
  • 1.

3.getTextInfo方法中第一行代码改为

let strJson = getInspectorByKey(index.toString()+this.tabName);
  • 1.

TestTab.ets修改点

1.ServiceTab组件添加传参 tabName: 'service'

2.NewsTab 组件添加传参 tabName: 'news'

分享
微博
QQ
微信
回复
2024-08-30 20:15:43
相关问题
HarmonyOS 怎么把两个PixelMap合成一个
1215浏览 • 2回复 待解决
HarmonyOS 两个object怎么拼接成一个
1150浏览 • 1回复 待解决
HarmonyOS 两个同级的组件问题
1268浏览 • 1回复 待解决
HarmonyOS 怎么让两个list同时滚动
736浏览 • 1回复 待解决
关于Image组件两个问题
1228浏览 • 1回复 待解决
实现一个定义动画,出现丢帧问题
1091浏览 • 1回复 待解决
两个设备控制相关问题
9610浏览 • 3回复 已解决