瀏覽代碼

fix(runtime-core): always set invalid vnode type (#820)

Currently, when a component used is not properly registered, we have a warning and the vnode type is set to a Comment type in DEV mode. But in prod mode, we have no default value, making such an application broken and throw a strange error (`can not read _isSuspense of undefined`).

This commit avoids such an error in prod mode (as it is currently the case in Vue 2.x).
Cédric Exbrayat 6 年之前
父節點
當前提交
28a9beed16
共有 1 個文件被更改,包括 4 次插入2 次删除
  1. 4 2
      packages/runtime-core/src/vnode.ts

+ 4 - 2
packages/runtime-core/src/vnode.ts

@@ -209,8 +209,10 @@ export function createVNode(
   patchFlag: number = 0,
   dynamicProps: string[] | null = null
 ): VNode {
-  if (__DEV__ && !type) {
-    warn(`Invalid vnode type when creating vnode: ${type}.`)
+  if (!type) {
+    if (__DEV__) {
+      warn(`Invalid vnode type when creating vnode: ${type}.`)
+    }
     type = Comment
   }