HarmonyOS 如何使登录成功后强制重绘页面,而不是依赖@state

HarmonyOS
2024-12-25 12:38:50
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
shlp

示例参考如下:

//使用AppStorage 模拟首选项存储登录状态
import { router } from '@kit.ArkUI';

PersistentStorage.persistProp('loginStatus', false);

@Entry
@Component
struct Page {
  @State message: string = '未登录,去登陆';
  @State isLogin: boolean = false
  onPageShow(): void {
    //模拟首选项拿数据
    this.isLogin = AppStorage.get('loginStatus') as boolean
    if (this.isLogin) {
      this.message = '已登录'
    }
  }

  build() {

    Column() {
      Button(this.message).onClick(() => {
        router.pushUrl({
          url: 'pages/fxtp/Login'
        })
      })
      List() {
        ListItem() {
          customComponent({
            isLogin: this.isLogin
          })
        }
      }
    }
  }
}

@Component
struct customComponent {
  @Prop isLogin: boolean

  build() {
    Column() {
      Text(this.isLogin ? "已经登录" : "未登录")
    }
  }
}

请求网络接口可以给isLogin添加@Watch,来监听变化处理对应的逻辑。

分享
微博
QQ
微信
回复
2024-12-25 15:24:26
相关问题
HarmonyOS Canvas如何触发
455浏览 • 1回复 待解决
HarmonyOS 如何让Canvas
48浏览 • 1回复 待解决
HarmonyOS websocket断网如何
217浏览 • 1回复 待解决
HarmonyOS @State不是不能修饰枚举
223浏览 • 1回复 待解决