小程序
小游戏
企业微信
微信支付
扫描小程序码分享
2 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
在methods里的setdata不起作用,在生命周期中setdata可以使用,例如attached
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
你在组件里面 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 }) }
相对来说把条件渲染写到组件里面更加简单,改动更小。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
在methods里的setdata不起作用,在生命周期中setdata可以使用,例如attached
你在组件里面 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 }) }
相对来说把条件渲染写到组件里面更加简单,改动更小。
我看到你js部分的lifetimes判断它是个组件,还以为你是在组件里面没办法通过setData更新。