我有一个父组件将一个props (selectedOption)传递给子组件,子组件获取props 并基于props 渲染一个图标.但每次我加载页面时,子组件都会抛出一个错误,因为props 没有及时传递,但在传递完所有内容后,一秒钟后就没事了.我怎样才能避免这种情况?

家长(Settings.vue):

<template>
    <settings-menu
      :selectedOption="selectedSettingsOption">
    </settings-menu>

子元素(SettingsMenu.vue):

<template>
  <component
    :is="`icon-${ selectedOption }`">
  </component>
</template>

推荐答案

只需放置一个v-if来隐藏组件,直到props 通过.

<template>
  <component
    v-if='selectedOption' :is="`icon-${ selectedOption }`">
  </component>
</template>

Vue.js相关问答推荐

如何在Vue 3中将动态特性从主零部件同步到子零部件

保持页面重新加载之间的状态

Vue composition api: 访问