自定义组件中,对象{]里面定义的匿名函数会被置为null,这个是为何
发布于 6 年前 作者 lei80 2247 次浏览 来自 问答
  • 当前 Bug 的表现(可附上截图)
  • 预期表现
  • 复现路径
  • 提供一个最简复现 Demo

很简单的一段代码,这个是data里面的值

lists: { fn: function () { console.log(111) }, data: [{ ltext: "xxx", rtext: "xxxxx" }] }

html

<view class='listBody' bindtap='_listclick' data-val='{{lists.val}}'>
  <view class='listTitle'>
    <view class='listTitle_Content'>{{lists.title}}</view>
    <view class='listTitle_Del' wx:if='{{lists.needDel}}' bindtap='_btnDelClick'>删除</view>
  </view>
  <view wx:for='{{lists.data}}' wx:key='index' class='listContent'>
    <span class='listContent_left' style='color:{{item.lcolor || ""}}'>{{item.ltext}}</span>
    <text class='listContent_right' style='color:{{item.rcolor || ""}}'>{{item.rtext}}</text>
  </view>
  <view class='listButtom' wx:if='{{lists.btns && lists.btns.length!=0}}'>
    <view class='listButtom_Child' wx:for='{{lists.btns}}' data-index='{{index}}' data-val='{{item.val}}' bindtap='_btnsClick'>{{item.text}}</view>
  </view>
 
  <slot></slot>
</view>

等一会,调试的时候,在_listclick里面控制台打印 this.data 你会发现list里面的其他数据都在

但是 fn 就没了。这个是为啥?????????


不管是放在属性里面或者data都不行,主的page调用setData设置自定义控件的属性内容,也是null


这里说的null是我调试之后看到null,但是你打印出来的时候是没有这个fn的这个东西了


但是page里面就没问题。

回到顶部