Skip to content

Setup sugar cannot pass the ref object to the ref function param.But I can get the ref object correctly with no sugar #3561

Closed
@recovery-alt

Description

@recovery-alt

Version

3.0.11

Reproduction link

link

Steps to reproduce

  1. Use Setup sugar in the children component.and set the ref equals dom to the root element.
  2. Const a ref variable named dom.
  3. Use ref function in the parent component, and then you cannot get the ref obejct in the ref function's first param.

What is expected?

using Setup sugar in the children component and set the ref attr to the root element won't cause ref function's first param missing in the parent component.

What is actually happening?

Sugar.vue is the children component of the App.vue. When I use ref sugar in the Sugar.vue, I cannot get the ref object in the setRef's first param. It's an empty object. But with no sugar in the NoSugar.vue, I can get the ref object correctly in the setRef's first param.
App.vue

<template>
  <sugar :ref="setRef" />
  <no-sugar :ref="setRef" />
</template>
<script lang="ts">
export default {
  setup() {
    const setRef = el => {
      // el is an empty object
    };
    
    const setRefNoSugar = el => {
      // el is correct
    };
    return { setRef, setRefNoSugar };
  }
};
</script>

it works

<script lang="ts">
import { ref, onMounted } from 'vue';
export default {
  setup() {
    const dom = ref();
    return { dom };
  },
};
</script>

it does not work

<script lang="ts" setup>
import { ref } from 'vue';
const dom = ref();
</script>

Here is my repo.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions