鸿蒙中如何实现第一次点击升序,再次点击降序,再次点击恢复默认排序
@Entry
@Component
struct ColorGradientExample {
@State sortOrder: 'asc' | 'desc' | 'default' = 'default';
build() {
Column() {
// 按钮用于切换排序状态
Button('切换排序')
.onClick(() => {
this.handleSortClick();
})
.margin({ top: 20 })
}
}
// 假设的排序函数
sortData(order: 'asc' | 'desc' | 'default'): void {
// 根据order进行排序,这里只是示例,具体实现取决于数据类型
if (order === 'asc') {
console.log('aaaaaaaaaaaaaaaa升序')
} else if (order === 'desc') {
console.log('aaaaaaaaaaaaaaaa降序')
} else {
console.log("aaaaaaaaaaaaaaaa默认")
}
}
// 按钮点击事件处理函数
private handleSortClick(): void {
switch (this.sortOrder) {
case 'asc':
this.sortOrder = 'desc';
this.sortData('desc');
break;
case 'desc':
this.sortOrder = 'default';
this.sortData('default');
// 如果默认不需要排序,这里可以不做处理或重置列表顺序
break;
case 'default':
this.sortOrder = 'asc';
this.sortData('asc');
break;
}
}
}
可以将默认排序的数据单独保存一份(可以只保存索引顺序)。