如何调试此重复错误 (Vue.js 2)

How can I debug this dublicate error (Vue.js 2)

我的项目总是发出带有重复密钥的警报和类型错误:无法读取未定义的属性(读取 'form')警报,但我不知道我将如何解决以及如何更改我的密钥?有人可以帮助我吗?

enter code here`  vue.runtime.esm.js:619 [Vue warn]: Duplicate keys detected: '314'. This may cause an update error.

found in

---> <ElectricWV> at src/components/electric/Electric-WV.vue
       <MainParameters> at src/components/electric/MainParameters/MainParameters.vue
         <BTab>
           <BTabs>
             <Electric> at src/views/Electric.vue
               <Pane>
                 <Splitpanes>
                   <Project> at src/views/Project.vue
                     <App> at src/App.vue
                       <Root>`

<div v-for="rev in OpenModalList.Revisions" :key="rev" class="tree-view">
        <h5>R{{ rev }}</h5>

        <div
          class="tree-item"
          v-for="vers in OpenModalList.Data.filter((x) => x.RevisionNo == rev)"
          :key="vers.Id"
        >
          <span :class="GetInput().Id == vers.Id ? 'font-weight-bold' : ''">
            <i
              class="fas fa-check-circle releasedVersIcon"
              v-if="vers.ActiveVersion"
              :style="!vers.ActiveRevision == true ? 'color:#00bcd4' : ''"
            ></i>
            V{{ vers.VersionNo }} : {{ vers.Description }}
            <b-radio
              v-if="GetInput().Id != vers.Id"
              :value="vers"
              v-model="OpenModalSelected"
              style="width: 16px; float: right; margin-top: -1px"
            ></b-radio>
          </span>
        </div>
      </div>
      
      
      
      <div v-for="rev in CloneModalList.Revisions" :key="rev" class="tree-view">
        <h5>R{{ rev }}</h5>

        <div
          class="tree-item"
          v-for="vers in CloneModalList.Data.filter((x) => x.RevisionNo == rev)"
          :key="vers.Id"
        >
          <span :class="GetInput().Id == vers.Id ? 'font-weight-bold' : ''">
            <i
              class="fas fa-check-circle releasedVersIcon"
              v-if="vers.ActiveVersion"
            ></i>
            V{{ vers.VersionNo }} : {{ vers.Description }}
            <b-radio
              :value="vers"
              v-model="CloneModalSelected"
              style="width: 16px; float: right; margin-top: -1px"
            ></b-radio>
          </span>
        </div>
      </div>
      
      
      
      <div
        v-for="rev in RevisionModalList.Revisions"
        :key="rev"
        class="tree-view"
      >
        <h5>R{{ rev }}</h5>

        <div
          class="tree-item"
          v-for="vers in RevisionModalList.Data.filter(
            (x) => x.RevisionNo == rev
          )"
          :key="vers.Id"
        >
          <span :class="GetInput().Id == vers.Id ? 'font-weight-bold' : ''">
            <i
              class="fas fa-check-circle releasedVersIcon"
              v-if="vers.ActiveVersion"
              :style="!vers.ActiveRevision == true ? 'color:#00bcd4' : ''"
            ></i>
            V{{ vers.VersionNo }} : {{ vers.Description }}
            <b-radio
              :value="vers"
              v-model="RevisionModalSelected"
              style="width: 16px; float: right; margin-top: -1px"
            ></b-radio>
          </span>
        </div>
      </div>

我的项目总是发出带有重复密钥的警报和类型错误:无法读取未定义的属性(读取 'form')警报,但我不知道我将如何解决以及如何更改我的密钥?有人可以帮助我吗?

您的重复键错误是因为您在代码中多次使用同一个键:

:key="vers.Id"

例如,如果您的 Id 为 1,则您的 :key 为 vers.1。您在 HTML 中不止一次这样做,因此有多个键具有相同的 ID,因此重复重复的 ID 错误。

你可以这样做:

:key="vers.Id + Math.random()"

或者提供一个 HTML id 并将其添加到 id,例如:

:key="vers.Id + 'div1'" id="div1"
:key="vers.Id + 'div2'" id="div2"

等等