Skip to content

Warn when using inline-template attribute but no children #9361

Closed
@ChristianStornowski

Description

@ChristianStornowski

Version

2.5.22

Reproduction link

https://codesandbox.io/s/r71q8py7mp

Steps to reproduce

Open https://codesandbox.io/s/r71q8py7mp and read console log

What is expected?

Don't execute following code from genInlineTemplate when el.children.length !== 1 || ast.type !== 1 is true because ast is undefined.

function genInlineTemplate (el, state) {
    var ast = el.children[0];
    if (el.children.length !== 1 || ast.type !== 1) {
      state.warn(
        'Inline-template components must have exactly one child element.',
        { start: el.start }
      );
    }
    if (ast.type === 1) {
      var inlineRenderFns = generate(ast, state.options);
      return ("inlineTemplate:{render:function(){"   (inlineRenderFns.render)   "},staticRenderFns:["   (inlineRenderFns.staticRenderFns.map(function (code) { return ("function(){"   code   "}"); }).join(','))   "]}")
    }
  }

What is actually happening?

Executing

 var inlineRenderFns = generate(ast, state.options);
      return ("inlineTemplate:{render:function(){"   (inlineRenderFns.render)   "},staticRenderFns:["   (inlineRenderFns.staticRenderFns.map(function (code) { return ("function(){"   code   "}"); }).join(','))   "]}")

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions