如果子組件發(fā)布訂閱模式的參數(shù)傳this.content,為什么父組件alert的時(shí)候是undefined
如果按照index可以傳過(guò)去,那content也可以啊,而且我試了如果不傳index,父組件handleDelete的參數(shù)也可以直接用index,是不是因?yàn)樯厦嬗薪壎ǖ脑??如果因?yàn)榻壎?,那content也綁定了的,為什么alert為undefined
如果按照index可以傳過(guò)去,那content也可以啊,而且我試了如果不傳index,父組件handleDelete的參數(shù)也可以直接用index,是不是因?yàn)樯厦嬗薪壎ǖ脑??如果因?yàn)榻壎?,那content也綁定了的,為什么alert為undefined
2018-07-21
舉報(bào)
2018-10-17
子組件傳遞出去的參數(shù)告訴父組件,如果子組件寫(xiě)的時(shí)候
是this
.$emit(
'delete'
,
this
.index,
this
.content);那么父組件接收的時(shí)候就按照這個(gè)參數(shù)傳遞的順序進(jìn)行接收,跟你寫(xiě)的handleDelete:function(index, content){}是對(duì)應(yīng)的關(guān)系,可以理解成形式參數(shù),這里的index和content你寫(xiě)成什么都無(wú)所謂,即使你寫(xiě)成
handleDelete:function(content, index){}都可以,只是content接收的是對(duì)應(yīng)的index,index接收的是對(duì)應(yīng)的content,所以按照你問(wèn)的問(wèn)題,你在子組件中只是將content傳出來(lái)了,所以接收的時(shí)候
handleDelete:function(index, content){}
,index值就是你傳出的content,因?yàn)榈诙€(gè)參數(shù)content這個(gè)形參,根本沒(méi)有值,所以你接下來(lái)alert(content),就是undefined。最后你的代碼中this.arrayList.splice(index, 1)之所以還能運(yùn)行,是因?yàn)閕ndex接收了你從子組件傳出的content的值,splice方法完整的函數(shù)調(diào)用是根據(jù)JS語(yǔ)法,splice第一個(gè)參數(shù)start是一個(gè)數(shù)字,你這個(gè)index如果是個(gè)非數(shù)字字符串,會(huì)自動(dòng)轉(zhuǎn)換成0,也就是你表面上看到刪除成功了,實(shí)際上是刪除了你第一個(gè)元素。這個(gè)細(xì)節(jié)你可以多添加幾條數(shù)據(jù),看看刪除的是否是你想刪除的來(lái)驗(yàn)證。
2018-08-21
只傳了一個(gè)參數(shù)this.content,傳到父組件時(shí)默認(rèn)為第一個(gè)參數(shù),打印index,值為this.content
2018-07-23
handleClick那邊
this
.$emit
需要將你要傳的參數(shù)寫(xiě)進(jìn)去,handleDelete這邊需要接受你傳的參數(shù),這兩個(gè)要一一對(duì)應(yīng),值才會(huì)準(zhǔn)確2018-07-22