Vuejs2 单击事件时选择了错误的项目

Vuejs2 单击事件时选择了错误的项目,vuejs2,Vuejs2,我有一个可以通过按钮从页面中删除的附件列表(请参见图片附件) 但是,删除顺序不正确。有时,当您单击按钮时,会删除另一个附件,而不是您认为已单击的附件 发生了什么事?有人知道我怎么修理吗 完整的演示代码如下: EditPost.vue: 媒体附件 附件文件名中的 删除我! 方法:{ removeAttachmentItemEvent(项目){ 此.attachmentsToDelete.push(项目); 此.$emit(“removeMediaAttachment”,项目); }, }

我有一个可以通过按钮从页面中删除的附件列表(请参见图片附件)

但是,删除顺序不正确。有时,当您单击按钮时,会删除另一个附件,而不是您认为已单击的附件

发生了什么事?有人知道我怎么修理吗

完整的演示代码如下:

EditPost.vue:

  • 媒体附件
      附件文件名中的
    • 删除我!
  • 方法:{ removeAttachmentItemEvent(项目){ 此.attachmentsToDelete.push(项目); 此.$emit(“removeMediaAttachment”,项目); }, }
    PostDetail.vue:

    
    数据(){
    返回{
    职位:{},
    附件A:[],
    附件删除:[]
    };
    },
    ...
    方法:{
    removeMediaItem(项目){
    本附件为射线附件拼接件(第1项);
    },
    }
    

    在removeMediaItem发出的事件方法中传递索引。

    Array.prototype.splice()
    接受索引作为第一个参数。您正在传递一个数组items@Phil:您有代码示例吗?谢谢你。Tranks,不幸的是我仍然遇到同样的问题:RemoveAttachmentEvent(item,index){this.attachmentsToDelete.push(item);this.$emit(“removeMediaAttachment,index);},更新你的API部件,它仍然不起作用。我一定是做错了什么。你能形成代码并给我发一个链接吗?谢谢
    <li>Media Attachments
      <ul v-if="attachmentsFileNames && attachmentsFileNames.length">
        <li v-for="(attachmentFileName, index) in attachmentsFileNames" :key="index">
          <a :href="'will-be-download-Attachment-Api-Url/' +  attachmentsArray.attachments[index]">
            {{ attachmentFileName }}
          </a>&nbsp;
          <button  @click.prevent="removeAttachmentItemEvent(attachmentsArray.attachments[index])">Delete me!</button>
        </li>
      </ul>
    </li>
    
    methods: {
      removeAttachmentItemEvent(item) {
        this.attachmentsToDelete.push(item);
        this.$emit("removeMediaAttachment", item);
      },
    }
    
    <section v-if="editPostFormIsVis">
      <EditPost
        :post="post"
        @update="postUpdated"
        @cancel="cancelEdit"
        :attachmentsArray="attachmentsArray"
        @removeMediaAttachment="removeMediaItem"
      />
    </section>
    
    data() {
      return {
        post: {},
        attachmentsArray: [],
        attachmentsToDelete: []
      };
    },
    ...
    methods: {
      removeMediaItem(item) {
        this.attachmentsArray.attachments.splice(item, 1);
      },
    }
    
    removeMediaItem(index) {
          this.attachmentsArray.attachments.splice(index, 1);
    },