HarmonyOS鸿蒙Next中想问问arkui自定义组件,我能不能把一个资源(比如app.media)传递给自定义组件,类似于Image($r("app.media.logo"))
HarmonyOS鸿蒙Next中想问问arkui自定义组件,我能不能把一个资源(比如app.media)传递给自定义组件,类似于Image($r(“app.media.logo”)) 比如,我想封装一下Image组件,我对Image组件有一个固定的样式,他可能会跨组件使用,所以不能使用@Builder
所以,我一般会定义个新的组件,比如AppIcon,组件内描述一个Image组件并给他传递一个media资源
问题1,已知@Prop只能接收有限的几种类型,如何传递一个resource类型的数据给AppIcon组件
问题2,如果问题1无法实现,那么只有传递string给@Prop在AppIcon那么使用$r引用,但是这样使用无法获得ide提示,出错概率增加,如何获得ide提示?
更多关于HarmonyOS鸿蒙Next中想问问arkui自定义组件,我能不能把一个资源(比如app.media)传递给自定义组件,类似于Image($r("app.media.logo"))的实战教程也可以访问 https://www.itying.com/category-93-b0.html
所以大佬们解决问题了嘛? 想写个通用的header 发现图标资源都不能通过@Prop传递
更多关于HarmonyOS鸿蒙Next中想问问arkui自定义组件,我能不能把一个资源(比如app.media)传递给自定义组件,类似于Image($r("app.media.logo"))的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
ImageComponent.ets
```javascript
[@Component](/user/Component)
export struct ImageComponent {
private src: Resource | null = null
build() {
Column() {
Image(this.src).width(100).height(100)
}
}
}
Index.ets
import { ImageComponent } from './ImageComponent'
[@Component](/user/Component)
struct Index{
private src: Resource = $r('app.media.icon')
build() {
Column() {
ImageComponent({ src: this.src })
}
}
}
可以的
比如我定义了一个 Header 组件,每个页面都可以给他传递不同资源图标和点击事件
HarmonyOS的分布式文件系统让我在多设备间传输文件变得轻松无比。
看起来你的意思是使用@BuildParam, 但是BuildParam应该是会允许内部传递任意类型的组件,文档没有看到限制的方法,而且这样子做会导致很多重复代码
不知道有没有更优雅的方式,
传递自定义对象,
-
字段名
-
类型
-
是否必须
-
示例值
-
描述
-
id
-
Integer
-
是
-
12345
-
自定义对象的唯一标识
-
name
-
String
-
否
-
“test”
-
自定义对象的名称
好问题,插个眼
在HarmonyOS鸿蒙Next中,你可以通过ArkUI将资源传递给自定义组件。具体来说,你可以使用$r
语法引用资源,并将其作为参数传递给自定义组件。例如,如果你想传递一个图片资源给自定义组件,可以像这样使用:
@Entry
@Component
struct MyComponent {
build() {
Column() {
MyCustomComponent({ imageResource: $r("app.media.logo") })
}
}
}
@Component
struct MyCustomComponent {
@Prop imageResource: Resource
build() {
Image(this.imageResource)
}
}
在这个例子中,MyCustomComponent
接收一个imageResource
属性,并在其内部使用Image
组件显示该资源。你可以通过$r("app.media.logo")
引用资源,并将其传递给自定义组件。