第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

如果子組件發(fā)布訂閱模式的參數(shù)傳this.content,為什么父組件alert的時候是undefined

如果按照index可以傳過去,那content也可以啊,而且我試了如果不傳index,父組件handleDelete的參數(shù)也可以直接用index,是不是因為上面有綁定的原因?如果因為綁定,那content也綁定了的,為什么alert為undefined

https://img1.sycdn.imooc.com//5b5311d9000142fa06530922.jpg

正在回答

4 回答

子組件傳遞出去的參數(shù)告訴父組件,如果子組件寫的時候是this.$emit('delete',this.index,this.content);那么父組件接收的時候就按照這個參數(shù)傳遞的順序進(jìn)行接收,跟你寫的handleDelete:function(index, content){}是對應(yīng)的關(guān)系,可以理解成形式參數(shù),這里的index和content你寫成什么都無所謂,即使你寫成handleDelete:function(content, index){}都可以,只是content接收的是對應(yīng)的index,index接收的是對應(yīng)的content,所以按照你問的問題,你在子組件中只是將content傳出來了,所以接收的時候handleDelete:function(index, content){},index值就是你傳出的content,因為第二個參數(shù)content這個形參,根本沒有值,所以你接下來alert(content),就是undefined。最后你的代碼中this.arrayList.splice(index, 1)之所以還能運(yùn)行,是因為index接收了你從子組件傳出的content的值,splice方法完整的函數(shù)調(diào)用是

splice(start:?number,?deleteCount:?number,?...items:?T[]):?T[];

根據(jù)JS語法,splice第一個參數(shù)start是一個數(shù)字,你這個index如果是個非數(shù)字字符串,會自動轉(zhuǎn)換成0,也就是你表面上看到刪除成功了,實(shí)際上是刪除了你第一個元素。這個細(xì)節(jié)你可以多添加幾條數(shù)據(jù),看看刪除的是否是你想刪除的來驗證。


0 回復(fù) 有任何疑惑可以回復(fù)我~

只傳了一個參數(shù)this.content,傳到父組件時默認(rèn)為第一個參數(shù),打印index,值為this.content

0 回復(fù) 有任何疑惑可以回復(fù)我~

handleClick那邊this.$emit需要將你要傳的參數(shù)寫進(jìn)去,handleDelete這邊需要接受你傳的參數(shù),這兩個要一一對應(yīng),值才會準(zhǔn)確

0 回復(fù) 有任何疑惑可以回復(fù)我~
handleClick:function(){	this.$emit('delete',this.index,this.content);}???需要在子組件觸發(fā)時,多加一個this.content參數(shù)就能讓父組件接收了,content就有值了
0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

如果子組件發(fā)布訂閱模式的參數(shù)傳this.content,為什么父組件alert的時候是undefined

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號