深层嵌套单页面,

代码如下:





interface user1{
  id:number
  name:string
}

interface address1{
  city:string
  street:string
}


interface Order {
  id: number;
  user: user1;
  address: address1;

}



@Entry
@Component
struct Test4 {
  @State message: string = 'Hello World';
  @State me:Order={
    id:1,
    user:{
      id:2,
      name:'aaa'
    },
    address:{
      city:'广东',
      street:'十三巷'
    }
  }
  build() {
    Column(){
      Text(this.me.user.name)
      .fontColor('#ffd04747') // 修正:颜色值格式(需引号包裹)
        .margin({ bottom: 20 }) // 增加间距,提升体验

      // 示例:修改address.city
      Button('修改name属性')
        .backgroundColor('#007DFF')
        .onClick(() => {
          // ✅ Fix: Manual object reassignment (no spread operator)
          // Step 1: Create a new User1 object (copy all properties + update name)
          const newUser: user1 = {
            id: this.me.user.id,   // Copy original id
            name: 'kkk123'            // Update target property
          }

          // Step 2: Create a new Order object (copy all properties + replace user)
          const newOrder: Order = {
            id: this.me.id,        // Copy original order id
            user: newUser,         // Use new user object
            address: this.me.address // Keep original address (unchanged)
          }

          // Step 3: Assign new object to @State variable (trigger UI update)
          this.me = newOrder
        })
    }
  }
}

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐