{"record":{"id":"4fc84638bf79be55","repo":"Meituan-Dianping/mpvue","slug":"transition-group-children-must-be-keyed-name-4fc846","errorCode":null,"errorMessage":"<transition-group> children must be keyed: <${name}>","messagePattern":"<transition-group> children must be keyed: <(.+?)>","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/platforms/weex/runtime/components/transition-group.js","lineNumber":52,"sourceCode":"    const map = Object.create(null)\n    const prevChildren = this.prevChildren = this.children\n    const rawChildren = this.$slots.default || []\n    const children = this.children = []\n    const transitionData = extractTransitionData(this)\n\n    for (let i = 0; i < rawChildren.length; i++) {\n      const c = rawChildren[i]\n      if (c.tag) {\n        if (c.key != null && String(c.key).indexOf('__vlist') !== 0) {\n          children.push(c)\n          map[c.key] = c\n          ;(c.data || (c.data = {})).transition = transitionData\n        } else if (process.env.NODE_ENV !== 'production') {\n          const opts = c.componentOptions\n          const name = opts\n            ? (opts.Ctor.options.name || opts.tag)\n            : c.tag\n          warn(`<transition-group> children must be keyed: <${name}>`)\n        }\n      }\n    }\n\n    if (prevChildren) {\n      const kept = []\n      const removed = []\n      prevChildren.forEach(c => {\n        c.data.transition = transitionData\n\n        // TODO: record before patch positions\n\n        if (map[c.key]) {\n          kept.push(c)\n        } else {\n          removed.push(c)\n        }\n      })","sourceCodeStart":34,"sourceCodeEnd":70,"githubUrl":"https://github.com/Meituan-Dianping/mpvue/blob/6c5d78ee04f58c6d782c456dfcf0fe63c0b7f89b/src/platforms/weex/runtime/components/transition-group.js#L34-L70","documentation":"Fires in the transition-group render function on Weex while collecting children: a child element has a falsy key, or an internally generated key (prefixed '__vlist', produced by v-for without explicit keys). transition-group needs real, stable keys to track enter/leave/move transitions across updates; unkeyed or auto-keyed children are skipped from the transition map and this dev warning names the offending child tag.","triggerScenarios":"Thrown at src/platforms/weex/runtime/components/transition-group.js:52 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Give every child in the transition-group a unique static key: <div v-for=\"item in items\" :key=\"item.id\">","Do not rely on v-for's auto-generated keys — they are insufficient for move tracking","Ensure keys are unique among siblings and stable across re-renders (avoid index-based keys when items reorder)"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"6c5d78ee04f58c6d782c456dfcf0fe63c0b7f89b","analyzedAt":"2026-09-02T05:17:40.946Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-09T11:17:12.671Z"}