iOS Widgets开发:如何识别区分多个同kind的小组件实例
同类型小组件实例身份识别说明
- 所有
kind属性值一致的同类型小组件,系统会为每个独立实例分配全局唯一的专属ID,完全可以作为身份区分的核心标识,不需要额外自定义识别维度。 - 该专属ID会在用户首次将组件添加到页面/容器时自动生成,和对应实例强绑定:后续用户拖拽调整组件位置、修改组件配置、刷新页面都不会变更ID值,只有用户主动删除该组件实例时,对应ID才会失效。
- 你可以在组件初始化生命周期、配置更新回调、交互事件触发的入参中直接拿到当前实例的专属ID,以该ID为索引即可给每个实例绑定独立的运行状态、交互逻辑、展示数据源,不会出现同类型组件逻辑串扰的问题。
避坑提示:不要用组件在当前页面的排列序号作为实例区分标识,用户拖拽调整组件顺序、新增/删除同类型组件时序号会动态变化,很容易导致逻辑匹配错乱。
- 如果有更复杂的实例分类、批量管理需求,也可以在组件配置项中预留自定义标识字段,和系统生成的专属实例ID搭配使用即可。
内容的提问来源于stack exchange,提问作者Apoleo
相关产品推荐
相关产品推荐

