HarmonyOS 嵌套组件能否支持state传递或provider、consumer?
Consulting description: 嵌套组件能否支持state传递或provider、consumer,这样封装组件会方便一点
例如:
Map.ets代码:
import { map } from '@kit.MapKit';
import { AsyncCallback } from '@kit.BasicServicesKit';
import MapComponent from './MapContainer';
@Entry
@Component
export default struct Map {
private callback?: AsyncCallback<map.MapComponentController>;
@Provide map?: map.MapComponentController = undefined;
aboutToAppear(): void {
this.callback = async (err, mapController) => {
if (!err) {
this.map = mapController;
}
}
}
build() {
Column() {
Stack() {
MapComponent({ callback: this.callback })
}
}.width('100%').height('100%')
}
}
MapMaker代码如下:
import { map, mapCommon } from '@kit.MapKit';
@Component
export default struct MapMarker {
// Marker初始化参数
options?: mapCommon.MarkerOptions;
@Consume map?: map.MapComponentController;
async aboutToAppear() {
await this.map?.addMarker(this.options);
}
build() {
}
}
业务如下使用:
Map({...}){
MapMaker({...})
}
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
Provider的值更新以后,所有Consumer都会刷新吗-
892浏览 • 1回复 待解决
HarmonyOS UI组件能否支持以value形式保存和传递?
164浏览 • 1回复 待解决
HarmonyOS 能否支持状态栏常驻或自启?
90浏览 • 1回复 待解决
多层组件嵌套button,如何阻止事件传递
1961浏览 • 1回复 待解决
子组件事件能否到传递父组件
2275浏览 • 1回复 待解决
@State装饰嵌套结构的变量时,为什么嵌套结构中数组元素增加或减少时界面不会刷新
2499浏览 • 1回复 待解决
ArkUI组件能否支持继承
1216浏览 • 1回复 待解决
能否嵌套定义 Record<string,Record>
1837浏览 • 1回复 待解决
HarmonyOS @State修饰的class变量没有嵌套的值无法监听
176浏览 • 1回复 待解决
HarmonyOS 组件嵌套问题
313浏览 • 1回复 待解决
HarmonyOS Tabs组件嵌套Tabs组件问题
601浏览 • 1回复 待解决
scroll中嵌套一个或多个grid,如何实现嵌套滚动?
2004浏览 • 1回复 待解决
使用LazyForEach嵌套LazyForEach(或ForEach)显示异常。
687浏览 • 1回复 待解决
HarmonyOS 组件@State最小化build监听VM
173浏览 • 1回复 待解决
HarmonyOS Tabs组件嵌套滑动
229浏览 • 1回复 待解决
HarmonyOS Web组件嵌套在Scroll布局中或List布局中,如何实现Web组件高度根据内容自适应
283浏览 • 1回复 待解决
HarmonyOS ZIP压缩时能否支持inFile传入多个文件,或同一个文件路径下支持文件过滤?
330浏览 • 1回复 待解决
HarmonyOS @builder创建的组件能否支持在外部设置宽高
317浏览 • 1回复 待解决
HarmonyOS 消息总栈 ,用于方便页面间信息传递的消息总栈的组件或框架?
123浏览 • 0回复 待解决
WaterFlow组件能否支持在瀑布流中间穿插一个或多个占满一行的item的能力
2013浏览 • 1回复 待解决
#鸿蒙学习大百科#@State变量能否从父组件接收初始化值?
140浏览 • 1回复 待解决
Tabs组件嵌套滑动组件
1313浏览 • 1回复 待解决
HarmonyOS Refresh组件嵌套滑动冲突问题
752浏览 • 1回复 待解决
eventHub能否在 UIAbility之间传递 (跨module与否)
1700浏览 • 1回复 待解决
目前自定义组件内嵌套是支持的,需要使用@BuilderParam
您是想在父组件Map中初始化一次MapComponentController后,在后代组件能支持调用controller的方法,同时又不想通过一层层透传的方式传递controller。
在此场景下,开发者您所说的@Provide-@Consume方案是可行的,通过相同变量名或相同key的方式实现祖先组件和后代组件的成员双向绑定,详细使用文档可以参考:
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-provide-and-consume-V5
样例代码如下: