'我试图在Vue(合成api)中访问从子组件到父组件的方法,我已经在defineExpose内定义了方法,但无法在父组件内访问它

Hero.vue(ChildComponents)

<template>
  <section data-testid="hero-section" class="flex flex-row gap-2 justify-between ">
    <h1 class="text-xl font-semibold text-ds-dark-500">
      {{ greeting }}
    </h1>
    <div>
      <Input v-model="searchQueryValue" data-testid="hero-section-input" placeholder="Search across use case" licon="fas fa-search" liconClasses="text-dark-60% px-1" inputClasses="rounded-full !border-1 !border-dark-20%" @input="handleSearch" />
    </div>
  </section>
</template>

<script setup lang="ts">
import { computed, defineEmits, ref } from 'vue';
import useUserDerivedDetails from '~/composables/useUserDerivedDetails';
import Input from '~/components/Input.vue';
import { useTranslation } from 'i18next-vue';
import { getGreeting } from '../utils';

const emit = defineEmits(['search', 'clearSearch']);
const { t: $t } = useTranslation();

const { user } = useUserDerivedDetails();

const searchQueryValue = ref('');
const userName = computed(() => {
  const name = user.value.firstName || user.value.lastName || '';
  return `${name}`.trim();
});

const greeting = computed(() => {
  return $t(getGreeting(searchQueryValue.value, userName.value));
});

function handleSearch(e: Event) {
  emit('search', e);
}
function clearSearch() {
  searchQueryValue.value = '';
  emit('clearSearch');
}

defineExpose({
  clearSearch,
});
</script>

我try 使用ref分配给组件,但没有起作用'

推荐答案

使用参考:

const $hero = ref()

//later after mounting

$hero.value.clearSearch()

// in template

<hero ref=”$hero" .. 

Javascript相关问答推荐

React native在不首次加载时渲染的挂钩比上一次渲染期间渲染的挂钩更多

setFinder关闭模式并重定向到url

即使设置了父级的最大高度,固定位置的分区内容也不会滚动?

使用NgDeliverentOutlet和动态内容投影的Angular 渲染组件

功能和普通对象之间的原型污染

强制执行useStatego struct 化变量[foo,setFoo]的命名约定?

如何提取Cypress中文本

当promise 在拒绝处理程序被锁定之前被拒绝时,为什么我们会得到未捕获的错误?

Snowflake JavaScript存储过程返回成功,尽管预期失败

在这种情况下,如何 for each 元素添加id?

WebRTC关闭navigator. getUserMedia正确

当运行d3示例代码时,没有显示任何内容

在open shadow—root中匹配时,使用jQuery删除一个封闭的div类

可更改语言的搜索栏

JQuery Click事件不适用于动态创建的按钮

本地库中的chartjs-4.4.2和chartjs-plugin-注解

为什么我的按钮没有从&q;1更改为&q;X&q;?

当我点击一个按钮后按回车键时,如何阻止它再次被点击

使用RxJS from Event和@ViewChild vs KeyUp事件和RxJS主题更改输入字段值

React:防止useContext重新渲染整个应用程序或在组件之间共享数据而不重新渲染所有组件