vue父組件調(diào)用子組件方法報錯問題及解決_第1頁
vue父組件調(diào)用子組件方法報錯問題及解決_第2頁
vue父組件調(diào)用子組件方法報錯問題及解決_第3頁
vue父組件調(diào)用子組件方法報錯問題及解決_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第vue父組件調(diào)用子組件方法報錯問題及解決目錄vue父組件調(diào)用子組件方法報錯vue父組件調(diào)用子組件方法及遇到的問題

vue父組件調(diào)用子組件方法報錯

在父組件定義了一個tab標簽頁,每一個標簽頁下面都調(diào)用不同的組件,

如下圖所示:

子組件中定義的方法:

setup(){

constgetList=()={

constdate=moment(newDate()).format('YYYY-MM')

loading.value=true

apiGetPageList({

salaryDate:date,

page:state.pagination.page,

limit:state.pagination.limit,

jobNo:state.formState.searchValuestate.formState.searchValue:null

}).then((res:any)={

if(res.data.status==200){

state.dataSource=res.data.data.rows

state.pagination.total=res.data.data.total

}else{

Message.error(res.data.messageres.data.message:"獲取數(shù)據(jù)失敗")

}).finally(()={

loading.value=false

return{

getList

父組件中使用tab標簽頁的change方法,每次點擊不同tab頁的時候,都會調(diào)用該子組件的獲取列表數(shù)據(jù)的接口。

一開始的思路是:在父組件中調(diào)用子組件的時候使用ref屬性,通過ref拿到子組件的方法,然后在change方法中進行調(diào)用。但在實際開發(fā)中,卻出現(xiàn)了問題,切換到tab頁時,控制臺會報錯,如下所示:

這個是因為異步執(zhí)行的原型,子組件還沒渲染完就調(diào)用方法會出現(xiàn)這樣的情況。在網(wǎng)上百度了下解決方法,只需要在子組件中定義的方法中加上this.$nextTick就可以解決。

這種方法的確可以,但我試了試另一種方法:在父組件中的change方法中加上nextTick,想驗證下是否能夠解決,結(jié)果是能夠正常調(diào)用。

代碼如下所示:

setup(){

constchangeTab=(active:any)={

switch(active){

case"2":

console.log(33333,areaWorkDay)

nextTick(()={

areaWorkDay.value.editTableData={}

areaWorkDay.value.getPageList()

areaWorkDay.value.formRef.resetFields()

break;

case"3":

console.log(111,monthSalaryRef)

//monthSalaryRef.value.$emit('getList')

nextTick(()={

monthSalaryRef.value.editTableData={}

monthSalaryRef.value.getList()

monthSalaryRef.value.monthRef.resetFields()

break;

return{

changeTab

這樣也可以解決父組件調(diào)用子組件的時候,因為異步執(zhí)行,子組件方法還沒初始化完成,導致控制臺報錯的問題。

vue父組件調(diào)用子組件方法及遇到的問題

在子組件methods選項中定義方法method(),在父組件中引用子組件,并在子組件標簽中定義ref=xxx,使用this.$refs.xxx.method()調(diào)用子組件方法。

但chrome控制臺報錯該方法undifined,原因是因為使用ref調(diào)用子組件是調(diào)用的實例,但調(diào)用時該實例還未加載完,因此調(diào)用的方法undifined。

解決方法:在父組件中調(diào)用時,先加載完組

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論