iview中的render函數(shù)由于從別的組件中引入,所以this指向不正確問題解決方法

????現(xiàn)遇到以下問題,我在使用iview框架結(jié)合vue制作后臺管理系統(tǒng)的時候,使用iview的table表格組件,打算把公共表頭都寫在一個文件里面,各個頁面按需引用它。


公共表頭的數(shù)據(jù)文件中


在某些頁面去使用它

這個時候,我使用table中的 render函數(shù)去綁定頁面方法的時候,總是報錯,報not a function


報錯的情況,打印this

打印this之后發(fā)現(xiàn)this指向了window,而不是vue實例:


this指向的不是vue實例,所以一直找不到方法

網(wǎng)上給得答案太少了,然后我就想到一個很不推薦的辦法,把調(diào)用這個表頭數(shù)據(jù)的頁面中,把vue實例拋給window,我個人及其不推薦。

但是目前又無能為力。

方法如下:全局var一個變量,如selfs

全局var一個變量,如selfs

在此頁面vue實例,鉤子函數(shù)created中,將this拋給window。

迫不得已這樣做

然后在回到表頭那個文件中,render函數(shù)里面打印this或者window,會發(fā)現(xiàn)有了個叫做‘selfs’,里面就是此頁面的vue實例:


window下面找到了vue實例

然后可以隨意調(diào)用了。


很笨的辦法,但是還算有效

后記:

? ??iview之前在table標簽中有一個‘:context=’這個屬性,是規(guī)定上下文的,這里存放對的this就可以改變被調(diào)用‘表頭數(shù)據(jù)’文件中的this指向了。不知為何后來被廢棄了;也有人說使用$refs方式,這種我不是沒有試過,但是沒起作用。

????這種辦法我個人認為是很不規(guī)范的,如果路過的大神有更好的解決方案,跪求大神不吝賜教!

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

相關(guān)閱讀更多精彩內(nèi)容

  • 閱讀人性的弱點第三部分1,如何獲取和保持對方的信任。 先來回顧一下這本書前面兩站章內(nèi)容,從人際交往的關(guān)鍵開始,到提...
    書眠閱讀 201評論 1 1
  • 他們穿著統(tǒng)一的制服,每天三班倒的工作制度。 清晨你能在校園看見他們執(zhí)勤,而在我們熟睡的夜晚,他們?nèi)栽谘策壷@的每...
  • 獅子座Q媽與正面管教閱讀 362評論 1 7
  • 面對可以做的事情,長期來看,無論如何總會有更好的選擇。然后站在當下,關(guān)鍵在這里:“現(xiàn)在我知道的最好的只有我現(xiàn)在能想...
    wilburH閱讀 206評論 0 1
  • 東漢末年,東吳黃武二年初夏,今浙江溫州地區(qū),有一道人名曰黃鶴,可通曉天機,斗轉(zhuǎn)星移卻自比喻閑云野鶴,不問世...
    七賢莊閱讀 878評論 0 5

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