收藏
回答

子组件如何监听父组件某属性的变化?

问题已更新

-----------------------------------

例如自定义movable-area(父)和movable-view(子)两个组件。假设父子组件只存在relations关系,父组件wxml中不存在子组件标签,无法直接绑定父属性。(感觉movable-area类似于checkbox-group, wxml中采用slot标签更合理,容易拓展。)

此时每个movable-view(子)某些样式或别的属性依赖于父组件某一属性(感觉像movable-view的全局变量),想要所有movable-view组件中都能监听父组件的该属性的变化,这种情况请问大家一般如何实现?

曾尝试过在movable-view(子)中利用observers监听所保存的movable-area(父)引用area变量,然而在movable-area(父)中使用this.setData并不会触发movable-view(子)中的observers。

初学小程序,若理解有误,欢迎指正。

最后一次编辑于  2020-05-05
回答关注问题邀请回答
收藏

2 个回答

  • LastLeaf
    LastLeaf
    2020-05-06

    可以在父组件中持有子组件的 this ,属性变化时,直接操作子组件的 this 。

    2020-05-06
    有用 1
    回复 2
    • 570
      570
      2020-05-06
      明白了,感谢回复,这种情况就只能主动控制,不能监听,是这意思吧。
      2020-05-06
      回复
    • LastLeaf
      LastLeaf
      2020-05-08回复570
      对。可以理解为,这些组件实例其实是一个可以互相控制的整体了,相互间耦合比较大,没有事件之类的解耦机制。
      2020-05-08
      回复
  • 神经蛙
    神经蛙
    2020-05-04

    父组件setData应该可以触发子组件中的observers,前提是这个字段是通过父组件传到子组件中的

    2020-05-04
    有用
    回复 1
    • 570
      570
      2020-05-05
      您好!请问如果父子组件只有relations关系,并不存在wxml中组件标签属性绑定这种情况呢,感觉movable-area.wxml应该更像checkbox-group,里面应该只放slot标签比较合理,容易拓展。
      2020-05-05
      回复
登录 后发表内容
问题标签