HarmonyOS 父组件内有个自定义的类列表,用Grid布局到界面上,GridItem是一个自定义的@Component,如何在父组件控制刷新自定义的@Component
父组件内有个自定义的类列表,用Grid布局到界面上,GridItem是一个自定义的@Component,如何在父组件控制刷新自定义的@Component
大致代码如下
数据类
export default class PrivacyItem1 {
selected: boolean = false;
path: string = '';
}
自定义子组件
@Component
export struct PrivacyItemView1 {
private itemWidth = 120;
@Link editMode: boolean;
@State data: PrivacyItem1 = {selected:false, path: ''};
private onSelectChange: ((pi: PrivacyItem1, selected: boolean) => void) | undefined;
private onItemClick:((pi:PrivacyItem1) => void) | undefined;
@State selected:boolean = false;
build() {
RelativeContainer() {
Text(this.data.path).alignRules({
center:{anchor:'__container__',align:VerticalAlign.Center},
middle:{anchor:'__container__',align:HorizontalAlign.Center},
})
if (this.editMode && this.selected) {
Row(){
Image($r('app.media.select')).width(40)
}.width(this.itemWidth).height(this.itemWidth).backgroundColor(0x80000000).justifyContent(FlexAlign.Center)
}
}.width(this.itemWidth)
.height(this.itemWidth)
.border({
width: 1,
color: $r('app.color.lightGrey'),
radius: 6
}).onClick((event) => {
if (this.editMode) {
this.selected = !this.selected;
if (this.onSelectChange!=undefined) {
this.onSelectChange(this.data, this.selected);
}
}else{
if (this.onItemClick != undefined) {
this.onItemClick(this.data);
}
}
})
}
}
父组件
@Entry
@Component
struct HideFileManager {
@State privacyList: PrivacyItem1[] =
[{ selected: false, path: '1' }, { selected: false, path: '2' }, { selected: false, path: '3' },
{ selected: false, path: '4' }];
@State editMode:boolean = true;
build() {
Column() {
Button('select all').onClick((event) => {
// 这里要如何控制才能 改变子组件列表?
})
Grid() {
ForEach(this.privacyList, (item: PrivacyItem1, i) => {
GridItem() {
PrivacyItemView1({
data: item,
editMode: this.editMode,
onSelectChange: (pi: PrivacyItem1, selected: boolean) => {
pi.selected = selected;
},
onItemClick: (pi: PrivacyItem1) => {
}
})
}
})
}
}
}
}
应该如何在 select all 这个按钮的点击事件中,刷新所有的GridItem,让它们内部的selected变量改为true?
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS 自定义了一个组件,如何自定义事件?使其能在父组件使用其自定义事件
259浏览 • 1回复 待解决
HarmonyOS @Component修饰的自定义组件,是否有接口可以destory该自定义组件
233浏览 • 1回复 待解决
HarmonyOS 父页面如何调用自定义组件内自定义方法
341浏览 • 1回复 待解决
如何自定义Component 属性
15280浏览 • 3回复 待解决
如何实现一个自定义的Controller? 自定义的Controller与自定义的组件page如何进行交互?
2167浏览 • 1回复 待解决
@Entry入口Component是否可以继承一个自定义的baseComponent?
631浏览 • 1回复 待解决
HarmonyOS 两个自定义组件之间怎么调用其中一个自定义组件的方法?
655浏览 • 1回复 待解决
HarmonyOS 如何在bindsheet内的mybuilder里面传一个自定义全局的Component?
499浏览 • 1回复 待解决
使用自定义构建函数Buider和自定义组件component的区别是什么
943浏览 • 1回复 待解决
HarmonyOS 自定义组件:@Component 的生命周期问题
307浏览 • 1回复 待解决
HarmonyOS 如何在 class 中表示两个自定义组件的父类或者泛型
778浏览 • 1回复 待解决
HarmonyOS 自定义组件的自定义布局 数据的作用域不对
307浏览 • 1回复 待解决
自定义构建函数Buider与自定义组件component的使用区别以及限制是什么
2938浏览 • 1回复 待解决
HarmonyOS 想要自定义一个类,其中一个属性为自定义组件,从而实现根据类的实例显示不同组件的功能
103浏览 • 1回复 待解决
HarmonyOS 实现一个自定义分类列表
583浏览 • 1回复 待解决
HarmonyOS 提供一个关于自定义对象类刷新的的Demo
190浏览 • 1回复 待解决
如何在自定义函数中创建一个UI组件
2042浏览 • 1回复 待解决
HarmonyOS 如何自定义布局组件
107浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何为自定义组件实现自定义布局?
299浏览 • 1回复 待解决
HarmonyOS 自定义组件父组件如何给子组件传递数据
322浏览 • 1回复 待解决
HarmonyOS 如何以现有组件为父类,继承后再自定义自己的组件
848浏览 • 2回复 待解决
HarmonyOS如何在自定义组件的自定义函数中获取当前的 NavPathStack
921浏览 • 1回复 待解决
HarmonyOS 自定义UI组件如何自定义属性方法
675浏览 • 1回复 待解决
Grid组件的scrollBar是否支持自定义
2519浏览 • 1回复 待解决
HarmonyOS 如何在自定义@Component中获取屏幕的宽高?
1112浏览 • 1回复 待解决
可尝试使用emitter,参考链接:
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-emitter-V5#emitteron