html52.com
我爱小程序-开发者交流社区

component内使用setData改变值没有反应?

网友回复

จุ๊บXavier:

你在组件里面 setData 当然是不会影响到父组件的 data 的。

要么你就把 wx:if 写到组件里面,要么你就用 triggerEvent 来触发父组件的事件


1.条件渲染写到组件里

<!-- advert_data.wxml -->
<view wx:if="{{hasUserInfo}}">
  <view>content</view>
  <slot></slot>
<  /view>


2.调用父组件事件

<!-- index.wxml -->
<view wx:if="{{hasUserInfo}}">
  <advert_data unit_state="2"
    unitid="{{myunitid}}"
    bind:setHasUserInfo="setHasUserInfo"/>
</view>


// advert_data.js
setHasUserInfo() {
  this.triggerEvent("setHasUserInfo", {hasUserInfo: true});
}
// index.js
setHasUserInfo(hasUserInfo) {
  this.setData({
    hasUserInfo
  })
}


相对来说把条件渲染写到组件里面更加简单,改动更小。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

真正的个人免签约支付接口

云免签H5支付