鸿蒙开发中,如何对对象的属性进行双向绑定?

在鸿蒙开发中,如何实现父子组件之间的数据双向绑定

需要注意的是我绑定的是父组件对象的一个属性
例如{arr: [1,2]},我想要把属性arr与子组件进行双向绑定,希望有大佬能帮我看看

阅读 1.6k
2 个回答

在鸿蒙开发中,你可以通过在父组件中传递数据和回调函数的方式实现父子组件之间的数据双向绑定。对于特定的对象属性如 {arr: [1,2]},可以在父组件中将这个属性和一个用于更新该属性的回调函数一起传递给子组件。子组件在需要更新这个属性时,调用这个回调函数并传入新的值,从而实现双向绑定。参考下面示例代码试一试:

// 父组件
@Component
struct Parent {
  @State arr: number[] = [1, 2];
  updateArr = (newValue: number[]) => {
    this.arr = newValue;
  };
  build() {
    Column() {
      // 将 arr 和 updateArr 传递给子组件
      Child({ arr: this.arr, updateArr: this.updateArr });
    };
  }
}

// 子组件
@Component
struct Child {
  arr: number[];
  updateArr: (newValue: number[]) => void;
  build() {
    Column() {
      // 在子组件中操作 arr 并调用 updateArr 更新父组件中的值
      Button('Update Arr', () => {
        this.updateArr([3, 4]);
      });
    };
  }
}

可以看下双向绑定的文档,上面有在组件间传递属性的示例代码

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进