收藏
回答

自定义了一个echars组件,子组件无法接收到父组件请求后setData的值?

自定义了一个echars组件,子组件无法接收到父组件请求后setData的值?

子组件接收值

```

  properties: {

    // 标题

    title:{

      type: String,

      default: '标题'

    }

  }

```

父组件在```onLoad```生命周期内通过请求获取到值,使用```setData```给父组件内title重新赋值。

```

<privpopup title="{{title}}"></privpopup>

```

可是这时在子组件的```attached```生命周期内无法获取到父组件的动态title值,一直是父组件默认的title值。

```

lifetimes: {

    attached: function () {

        console.log(this.properties.title)

        //此处输出的永远是父组件title的默认值

    }

}

```

该自定义组件内引用了echarts的小程序版。是受到这个影响吗?目前通过测试发现data渲染数据永远在最后执行,即所有生命周期完成后才会执行。

请问如何能让子组件正常获取到父组件动态的值?

现在测试发现是请求异步导致,但是目前没有太好的解决办法。

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

2 个回答

  • momo
    momo
    2020-06-11

    请问怎么解决的。

    2020-06-11
    有用
    回复
  • 胃里养了只霸王龙
    胃里养了只霸王龙
    2020-03-10

    用observer监听打印。

    2020-03-10
    有用
    回复 5
    • 🚁💨💨💨
      🚁💨💨💨
      2020-03-10
      您好,observer也不行,因为请求异步,observer监听到到也是默认值
      2020-03-10
      回复
    • 胃里养了只霸王龙
      胃里养了只霸王龙
      2020-03-11回复🚁💨💨💨
      外部改变后 传进来里面ovserver监听
      2020-03-11
      回复
    • 🚁💨💨💨
      🚁💨💨💨
      2020-03-12回复胃里养了只霸王龙
      非常感谢,已经找到问题所在。调用生命周期问题
      2020-03-12
      回复
    • 胃里养了只霸王龙
      胃里养了只霸王龙
      2020-03-12回复🚁💨💨💨
      嗯。我们是监听某个变量的ovserver
      2020-03-12
      回复
    • 570
      570
      2020-04-03回复🚁💨💨💨
      您好,请问您最后怎么解决的,我这边也是类似的需求:子组件保存父组件实例变量area,但是在父组件方法中setData动态修改this.data.field,在子组件的observers里监听'area.data.field'值不会变化..
      2020-04-03
      回复
登录 后发表内容
问题标签