亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

為什么每次點擊都是刪除最后一個,而不是刪除點擊的那個li

<div?id="root">
????<!--模板-->
????<input?v-model="inputValue"?type="text"?autofocus=true?/>
????<button?@click="handleSubmit">提交</button>
????<ul>
????????<!--子組件-->
???????<todo-item?v-for="(item,index)?of?list"
??????????????????:key="index"
??????????????????:content="item"
??????????????????:index="index"
??????????????????@delete="handleDelete"
???????????????>
???????</todo-item>
????</ul>
</div>
<script>
//????每一個組件都是一個實例
//????Vue.component注冊或獲取全局組件
????Vue.component('todo-item',{
//????????props?可以是數組或對象,用于接收來自父組件的數據
????????props:['content','index'],
????????template:'<li?@click="handleClick">{{content}}{{index}}</li>',
????????methods:{
????????????handleClick:function(){
//????????????????$emit觸發當前實例上的事件。附加參數都會傳給監聽器回調。
????????????????this.$emit('delete',this.index)
????????????}
????????}
????})
//????var?TodoItem={
//????????template:'<li>item</li>'
//????}
//實例
????new?Vue({
//????????掛載點
????????el:"#root",
????????data:{
????????????inputValue:"",
????????????list:[]
????????},
????????methods:{
????????????handleSubmit:function(){
????????????????this.list.push(this.inputValue)
????????????????this.inputValue=""
????????????},
????????????handleDelete:function(index){
????????????????this.list.splice(index,1)
????????????}
????????}
????})
</script>


正在回答

4 回答

你的代碼沒錯,你是被誤導了。

他綁定的list值每次修改都會重新賦值給todo-item。你輸入一些數據再添加看看就會發現。

不要直接點添加,你直接點之后他只顯示index,但是你刪除一個元素后,他的index又重新賦值,所以你看起來像是刪除了最后一項。

0 回復 有任何疑惑可以回復我~
#1

qq_莫莫_14 提問者

非常感謝!
2018-07-16 回復 有任何疑惑可以回復我~
#2

qq_持晨_0

請我最后是怎么解決的,我也出現了同樣的問題,控制臺打印的數據是正常的,顯示的就不正常了,不管刪數組哪個位置的,顯示的都是刪除最后一個的元素
2018-09-14 回復 有任何疑惑可以回復我~

我今天看了上面的回答,表示沒看懂,我相信很多人也是這樣,但我找到了解決辦法。

把template:'<li?@click="handleClick">{{content}}{{index}}</li>'中的賦值方式改成v-text賦值。
即template:'<li?v-text="content"?@click="handleClick"></li>'

問題就解決了。? ??

要更深入了解可以百度一下,這兩種賦值方式的不同。

0 回復 有任何疑惑可以回復我~

我和你的問題一樣,并不能點擊哪個刪哪個,最佳回答沒看懂,就算是index重新賦值了,我想刪除第一項,也是最后一項被刪除啊,好懵,請問有人懂嗎

0 回復 有任何疑惑可以回復我~
#1

你罵我我吃虧你就是個小烏龜

你把子組件中template:'<li @click="handleClick">{{content}}{{index}}</li>',中的{{index}}刪除掉,寫成template:'<li @click="handleClick">{{content}}</li>', 你添加不同的項你再刪除試一下,你注重看一下內容,不要看后面顯示的{{index}}的索引值
2018-11-14 回復 有任何疑惑可以回復我~
#2

好好學習天天向上嘍

不要看后面index的值,它是更新的 你看你刪除的內容,看看內容有沒有被刪除,內容刪除了就是對的
2018-11-29 回復 有任何疑惑可以回復我~
#3

慕虎2052545

你解決了么,我也遇到這個問題了
2019-05-21 回復 有任何疑惑可以回復我~

我試了 沒問題啊

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么每次點擊都是刪除最后一個,而不是刪除點擊的那個li

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號