{"record":{"id":"c601369283392432","repo":"Meituan-Dianping/mpvue","slug":"invalid-component-definition-string-ctor-c60136","errorCode":null,"errorMessage":"Invalid Component definition: ${String(Ctor)}","messagePattern":"Invalid Component definition: (.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/core/vdom/create-component.js","lineNumber":122,"sourceCode":"  children: ?Array<VNode>,\n  tag?: string\n): VNode | void {\n  if (isUndef(Ctor)) {\n    return\n  }\n\n  const baseCtor = context.$options._base\n\n  // plain options object: turn it into a constructor\n  if (isObject(Ctor)) {\n    Ctor = baseCtor.extend(Ctor)\n  }\n\n  // if at this stage it's not a constructor or an async component factory,\n  // reject.\n  if (typeof Ctor !== 'function') {\n    if (process.env.NODE_ENV !== 'production') {\n      warn(`Invalid Component definition: ${String(Ctor)}`, context)\n    }\n    return\n  }\n\n  // async component\n  let asyncFactory\n  if (isUndef(Ctor.cid)) {\n    asyncFactory = Ctor\n    Ctor = resolveAsyncComponent(asyncFactory, baseCtor, context)\n    if (Ctor === undefined) {\n      // return a placeholder node for async component, which is rendered\n      // as a comment node but preserves all the raw information for the node.\n      // the information will be used for async server-rendering and hydration.\n      return createAsyncPlaceholder(\n        asyncFactory,\n        data,\n        context,\n        children,","sourceCodeStart":104,"sourceCodeEnd":140,"githubUrl":"https://github.com/Meituan-Dianping/mpvue/blob/6c5d78ee04f58c6d782c456dfcf0fe63c0b7f89b/src/core/vdom/create-component.js#L104-L140","documentation":"Emitted in createComponent after the Ctor passed to createElement cannot be turned into a constructor: a plain-object Ctor was converted via baseCtor.extend, but the result (or the original non-object Ctor) is still not a function — e.g. a component option resolved to undefined, a string, or an object that broke Vue.extend. This is a generic invalid-definition guard; the createComponent call aborts and returns undefined, so no vnode is created for that tag.","triggerScenarios":"Thrown at src/core/vdom/create-component.js:122 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Verify the component/directive value passed to createElement or the tag resolves to a constructor or options object — check imports return the component and not undefined","Fix circular imports that make a component evaluate to undefined at render time","If registering asynchronously, ensure the factory/Promise pattern for async components is used correctly","Print or inspect the Ctor value in a debugger to see the actual faulty definition"],"exampleFix":null,"handlingStrategy":"type-guard","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"}