收藏
回答

自定义组件properties传递对象修改问题

问题模块 框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
API和组件 小程序 Bug 自定义组件问题 客户端 6.6.7 2.1.3

一、问题描述:

1、自定义了头部导航,写了一个公共组件<mp-header>,<mp-header>组件properties 接受一个header对象,在A页面中引入了<mp-header>组件,A页面的js中定义

data:{

    header: {

        title: "",

        back:function(){

            //返回指定页面

        }

    }

}

2、现在有这样一个问题,当我不修改header里面title的时候,<mp-header>组件中能正确接受到header里面的back函数,当我修改header里面的title之后,<mp-header>组件中接收到的back是个null;



3、在页面中修改header的方法如下:

var header = this.data.header;

    header.title = title

this.setData({

    header: header

})

请官方大神指导

最后一次编辑于  2018-08-15  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

3 个回答

  • 卢霄霄
    卢霄霄
    2018-08-15

    按理说,最开始的function都不应该能传过去啊

    2018-08-15
    赞同
    回复 2
    • Sunwd
      Sunwd
      2018-08-15

      可以的,vuejs 是可以传function的,也希望可以,能传function感觉更灵活,下面是<mp-header>中的goback方法

      goback:function(){

          if (HT.isFunction(this.data.back)){

              this.data.back();

          }else{

              wx.navigateBack();

          }

      }



      2018-08-15
      赞同
      回复
    • 卢霄霄
      卢霄霄
      2018-08-15回复Sunwd

      vue是可以的,但是小程序组件 properties 里的类型本来就没有 function呢。确实,如果可以传,很多回调之类的,就可以传参进去了,比较自然,不需要拐弯抹角的调用

      2018-08-15
      赞同
      回复