????現(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ī)范的,如果路過的大神有更好的解決方案,跪求大神不吝賜教!