this.triggerEvent()用法

在對(duì)組件進(jìn)行封裝時(shí) 在當(dāng)前頁面想要獲取組件中的某一狀態(tài),需要使用到this.triggerEvent(' ',{},{}),第一個(gè)參數(shù)是自定義事件名稱,這個(gè)名稱是在頁面調(diào)用組件時(shí)bind的名稱,第二個(gè)對(duì)象就可以將想要的屬性拿到,第三個(gè)參數(shù)文檔中有介紹,有機(jī)會(huì)再做補(bǔ)充。

  • 在這個(gè)demo中l(wèi)ike組件是我要封裝的組件,在classic.wxml中調(diào)用的:


    image.png
  • 組件like.vue的頁面是這樣寫的:
<view bind:tap="onLike" class="container">
  <image src="{{like?yesSrc:noSrc}}" />
  <text>{{count}}</text>
</view>
  • 組件的like.js中methods是這樣寫的:
methods: {
        onLike(event) {
            let like = this.properties.like;
            let count = this.properties.count;
            count = like ? count - 1 : count + 1;
            this.setData({
                like: !like,
                count
            })
            let behavior = this.properties.like ? "like" : "cancel";
            this.triggerEvent('like', {
                behavior
            }, {})
        }
    }
  • 那么在classic.wxml中調(diào)用組件:
  • 這里要注意bind:后面的like是this.triggerEvent()的第一個(gè)參數(shù),自定義事件名稱
<v-like bind:like="onLike" like="{{classicData.like_status}}" count="{{classicData.fav_nums}}"/>
  • classic.js中onlike就可以實(shí)現(xiàn)頁面對(duì)組件屬性的獲?。?/li>
 onLike: function(event) {
        console.log(event)
    }
image.png

event.detail.behavior就可以拿到是不是喜歡的屬性了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容