Skip to content

Cannot find name slotVariable when using v-slot in component, in multiple lines #2094

Closed
@amoshydra

Description

@amoshydra
  • I have searched through existing issues
  • I have read through docs
  • I have read FAQ

Info

  • Platform: Win
  • Vetur version: 0.25.0
  • VS Code version: 1.47.3 & 1.48.0-insider

Problem

Output > Vue Language Server

No error

Problems

{
	"resource": "retracted:/test-vetur/componentA.vue",
	"owner": "_generated_diagnostic_collection_name_#0",
	"code": "2304",
	"severity": 8,
	"message": "Cannot find name 'slotVariable'.",
	"source": "Vetur",
}

Description

Error with detecting slot's variables with when:

  1. v-slot syntax is written directly on the component
  2. v-slot syntax is written on the next line

See ComponentA in the screenshot below

image

Reproducible Case

❌ Code that reproduce the error

ComponentA

<template>
  <Parent
    v-slot="{ slotVariable }"
  >
    {{ slotVariable }}
  </Parent>
</template>
Virtual content
import __vlsComponent from "./ComponentA.vue";
import {
    __vlsRenderHelper,
    __vlsComponentHelper,
    __vlsIterationHelper
} from "vue-editor-bridge";
__vlsRenderHelper(__vlsComponent, function() {
    () => __vlsComponentHelper(this, "parent", {
        props: {},
        on: {},
        directives: []
    }, [slotVariable]);
});

✔ No error

ComponentB

<template>
  <Parent v-slot="{ slotVariable }">
    {{ slotVariable }}
  </Parent>
</template>
Virtual content
import __vlsComponent from "./ComponentA.vue";
import {
    __vlsRenderHelper,
    __vlsComponentHelper,
    __vlsIterationHelper
} from "vue-editor-bridge";
__vlsRenderHelper(__vlsComponent, function() {
    ({
        slotVariable
    }) => __vlsComponentHelper(this, "parent", {
        props: {},
        on: {},
        directives: []
    }, [slotVariable]);
});

ComponentC

<template>
  <Parent>
    <template v-slot="{ slotVariable }">
      {{ slotVariable }}
    <template>
  </Parent>
</template>

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