1 回复
你在组件里面 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
})
}
相对来说把条件渲染写到组件里面更加简单,改动更小。