鍍金池/ 問答/HTML/ 寫插件處理this傳遞的問題

寫插件處理this傳遞的問題

自己寫了個(gè)vue的全局Toast插件,其中一個(gè)功能想做成在toast消失后提供一個(gè)api能傳一個(gè)回調(diào)函數(shù),類似于這樣使用

this.$toast({
    callback(){
        this.$router.push('/')
    }
})

但是實(shí)現(xiàn)的時(shí)候this傳不過去。
目前的方法是用了一個(gè)新的全局Vue實(shí)例通過$emit/$on來實(shí)現(xiàn),但是感覺這樣做會(huì)讓toast插件與業(yè)務(wù)代碼耦合,想問下如何解決這個(gè)問題

回答
編輯回答
下墜

可以加一個(gè)入?yún)?,傳入?dāng)前實(shí)例

2017年3月13日 21:12
編輯回答
尐潴豬

箭頭函數(shù)試一下?

2018年1月9日 05:33
編輯回答
尐潴豬

請(qǐng)使用箭頭函數(shù)


this.$toast({
    callback: () => {
        this.$router.push('/');
    }
});

你之前的寫法,this會(huì)被重新指向到window,就像使用function callback() {}一樣,除非你用了bind()。
而箭頭函數(shù)不一樣,this總是指向用上一級(jí)的作用域

2018年5月6日 20:58