HarmonyOS 鸿蒙Next Array .filter 操作符在构建页面时异常问题
使用了Array .filter 了之后构建布局异常。 问题代码如下:
export interface DragTableInfo {
st1: string
st2: string
success: boolean
}
@Entry({ routeName: EntryUrlConstants.TABLE_TEST_1 })
@Component
export struct DragTableTest {
@State datas: Array<DragTableInfo> =
[{ st1: "测试1", st2: '测试2', success: true }, { st1: "测试1", st2: '测试2', success: false }]
build() {
Column() {
DZToolBar({ title: '测试页面' })
ForEach(this.datas.filter((data) => {
data.success == true
}), (item: DragTableInfo) => {
Text(item.st1)
.width('100%')
.height(50)
.textAlign(TextAlign.Center)
.fontSize(18)
.fontColor(Color.Red)
})
}.width('100%').height('100%')
}
}
//如果把遍历的部分换成
ForEach(this.datas, (item: DragTableInfo) => {
Text(item.st1)
.width('100%')
.height(50)
.textAlign(TextAlign.Center)
.fontSize(18)
.fontColor(Color.Red)
})
//则能正常展示,但是按这个操作符的含义
this.datas.filter((data) => {
data.success == true
}
应该也能遍历一个数据。而且断点调试,计算这个表达式 this.datas.filter((data)=>{ data.success == true } 也是有值的。 就是界面不展示,请问是什么原因。
更多关于HarmonyOS 鸿蒙Next Array .filter 操作符在构建页面时异常问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复
filter函数需要return。改成 return data.success == true。
更多关于HarmonyOS 鸿蒙Next Array .filter 操作符在构建页面时异常问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html