如果 prop 参数为 null,则使用默认值

新手上路,请多包涵

我有这个简化的头像组件:

 <template>
  <img :src="src">
</template>

<script>
export default {
  name: 'Avatar',
  props: {
    src: {
      type: String,
      default: '/static/avatar-default.png'
    }
  }
}
</script>

假设我从我的 API 中获取了一些用户数据,但它不包含头像 URL。在这种情况下,我希望这个组件使用默认值,但它似乎只在将 undefined 传递给它时才起作用,但是 undefined 在 JSON 中无效,所以我无法从API 响应。

有没有办法通过传入 null 来实现我想要的东西—或者有更好的方法来处理这个问题吗?

原文由 Kid Diamond 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

我会根据 src 道具值创建一个计算属性,如果 srcnull :53a— 则返回默认值

<template>
  <img :src="source">
</template>

<script>
export default {
  name: 'Avatar',
  props: {
    src: { type: String }
  },
  computed: {
    source() {
      return this.src || '/static/avatar-default.png';
    }
  }
}
</script>

原文由 thanksd 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果 srcnull 你也可以显式传递 undefined 作为 prop — 并且你宁愿希望组件处理默认值

<template>
   <img :src="src || undefined">
</template>

原文由 nomadoda 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题