如何实现对Page页面数据的保留

我们有一个场景,需要将当前页面保留下来,下次打开,依然是此页面。

比如,首页Index,需要保存的页面AIndex -> 打开 AA退出-> 回到Index, 此时需要保留A的信息Index -> 再打开A,依然显示之前的A页面,包括上面已修改的信息如何实现?

HarmonyOS
2024-04-27 23:29:05
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
sslijun

可以通过Index保存页面A的数据,下次打开页面A加载保存的数据即可,参考代码:

import DetailPage from 'page页路径' 
 
@Entry 
@Component 
struct NavigationDemo { 
  @Provide('pathInfo') pathInfo: NavPathStack = new NavPathStack() 
  // 保存DetailPage数据 
  @State detailInfo: string = '我是index初始化info' 
 
  @Builder 
  NavPathStack() { 
    Column() { 
      Text('menu') 
        .fontColor('#182431') 
        .fontSize(14) 
        .lineHeight(19) 
        .opacity(0.4) 
        .margin({ top: 30 }) 
    } 
    .alignItems(HorizontalAlign.Start) 
  } 
 
  // Navigation的navDestination属性方法设置的构造函数,在路由栈变化时触发该构建数创建新的路由页面 
  @Builder 
  myRouter(name: string, param: string) { 
    DetailPage(dataObj) 
  } 
 
  build() { 
    Column() { 
      Navigation(this.pathInfo) { 
        TextInput({ placeholder: 'search…' }) 
          .width('90%') 
          .height(40) 
          .margin({ bottom: 10 }) 
        List({ space: 12, initialIndex: 0 }) { 
          ListItem() { 
            // 通过NavDestination定义导航目标界面,界面之间通过组件间的状态变量或者普通变量传递参数 
            // NavRouter点击之后会传递name和param参数给Navigation的navDestination属性方法设置的builder函数(myRouter) 
            NavRouter({ name: '方式一进入', param: '' + 0 }) { 
              Row() { 
                Column() { 
                  Text('导航一级页面') 
                    .fontSize(16) 
                    .lineHeight(21) 
                    .fontWeight(FontWeight.Medium) 
                } 
                .alignItems(HorizontalAlign.Start) 
 
                Blank() 
                Row() 
                  .width(15) 
                  .height(15) 
                  .margin({ right: 12 }) 
                  .border({ 
                    width: { top: 2, right: 2 }, 
                    color: 0xcccccc 
                  }) 
                  .rotate({ angle: 45 }) 
              } 
              .borderRadius(15) 
              .shadow({ radius: 100, color: '#ededed' }) 
              .width('90%') 
              .alignItems(VerticalAlign.Center) 
              .padding({ left: 16, top: 12, bottom: 12 }) 
              .height(80) 
              .backgroundColor(Color.White) 
            } 
          } 
        } 
      } 
    } 
  } 
}
分享
微博
QQ
微信
回复
2024-04-28 20:59:23
相关问题
应用卸载时如何保留用户数据
129浏览 • 1回复 待解决
如何实现页面加载前从接口获取数据
443浏览 • 1回复 待解决
page页面如何设置为横屏显示
200浏览 • 1回复 待解决
Page Ability 无法实现跳转
6941浏览 • 1回复 待解决
如何控制软键盘弹出页面的遮挡?
1070浏览 • 1回复 待解决
页面关闭时如何传递数据
296浏览 • 1回复 待解决
如何实现字节数组进行解压
135浏览 • 0回复 待解决
BLE蓝牙开发如何实现智能灯控制?
4987浏览 • 1回复 待解决
页面导航如何实现两个页面叠层
345浏览 • 1回复 待解决
如何非关系数据库进行查询
147浏览 • 1回复 待解决
如何更新页面列表数据
5112浏览 • 1回复 待解决
如何实现上下切换页面间跳转动画
343浏览 • 0回复 待解决
PolarDB全量恢复实例ID如何保留?
1449浏览 • 1回复 待解决
ability被异常杀后数据保留怎么弄?
3229浏览 • 1回复 待解决