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都会刷新吗-
1163浏览 • 1回复 待解决
HarmonyOS 跨har使用@Provider/@Consumer,无法被@Monitor观察的问题
431浏览 • 1回复 待解决
HarmonyOS UI组件能否支持以value形式保存和传递?
349浏览 • 1回复 待解决
HarmonyOS navigation传递参数能否支持对象传递,想传key value
157浏览 • 1回复 待解决
HarmonyOS 能否支持状态栏常驻或自启?
366浏览 • 1回复 待解决
多层组件嵌套button,如何阻止事件传递
2327浏览 • 1回复 待解决
子组件事件能否到传递父组件
2644浏览 • 1回复 待解决
@State装饰嵌套结构的变量时,为什么嵌套结构中数组元素增加或减少时界面不会刷新
2771浏览 • 1回复 待解决
ArkUI组件能否支持继承
1827浏览 • 1回复 待解决
HarmonyOS 关于@State或@Link 修饰Array的应用
321浏览 • 1回复 待解决
HarmonyOS Image组件能否支持heic格式图片
378浏览 • 1回复 待解决
能否嵌套定义 Record<string,Record>
2015浏览 • 1回复 待解决
HarmonyOS 能否通过eventHub传递Want数据
200浏览 • 1回复 待解决
HarmonyOS @State不支持HashMap吗
134浏览 • 1回复 待解决
scroll中嵌套一个或多个grid,如何实现嵌套滚动?
2600浏览 • 1回复 待解决
使用LazyForEach嵌套LazyForEach(或ForEach)显示异常。
1088浏览 • 1回复 待解决
HarmonyOS Tabbar组件支持TabbarItem组件或子组件,超出Tabbar显示或实现同样效果的平替方案
70浏览 • 1回复 待解决
HarmonyOS @State修饰的class变量没有嵌套的值无法监听
514浏览 • 1回复 待解决
HarmonyOS @BuilderParam组件作为参数传递后自身引用的@State变量无法触发UI布局更新
97浏览 • 1回复 待解决
HarmonyOS web组件onInterceptRequest接口能否支持异步方法返回
234浏览 • 1回复 待解决
HarmonyOS @BuilderParams尾随闭包方式能否传递参数
201浏览 • 1回复 待解决
HarmonyOS @Provider与@Consume的数据交互方式
540浏览 • 1回复 待解决
HarmonyOS ZIP压缩时能否支持inFile传入多个文件,或同一个文件路径下支持文件过滤?
623浏览 • 1回复 待解决
WaterFlow组件能否支持在瀑布流中间穿插一个或多个占满一行的item的能力
2183浏览 • 1回复 待解决
HarmonyOS 能否调起系统的图片编辑或裁剪功能
296浏览 • 1回复 待解决
目前自定义组件内嵌套是支持的,需要使用@BuilderParam
您是想在父组件Map中初始化一次MapComponentController后,在后代组件能支持调用controller的方法,同时又不想通过一层层透传的方式传递controller。
在此场景下,开发者您所说的@Provide-@Consume方案是可行的,通过相同变量名或相同key的方式实现祖先组件和后代组件的成员双向绑定,详细使用文档可以参考:
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-provide-and-consume-V5
样例代码如下: