You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bootstrap-vue动态生成的b-form-select如何设置默认选中选项

解决方案

因为BootstrapVue的b-form-select依赖v-model做双向绑定,原生的selected属性会被v-model的绑定值覆盖,所以单独给选项加selected不会生效,你只需要在动态新增skill的时候,给v-model绑定的对应字段初始化值为'set'即可,具体实现如下:

  1. 修改addSkill方法,在新增skill到store的skillsList之后,同步给绑定的skillArray.skillType对象添加对应skill ID的默认值,Vue2场景需要用$set保证响应式:
// addSkill方法修改示例
addSkill(event) {
  // 保留你原有新增skill到store的逻辑,示例:
  const newSkill = {
    ID: Date.now(), // 替换为你自己的唯一ID生成逻辑
    // 其他skill相关字段
  }
  this.$store.commit('addSkill', newSkill)

  // 核心逻辑:初始化对应下拉框的默认值为'set'
  this.$set(this.skillArray.skillType, newSkill.ID, 'set')
}
  1. 确保组件内的skillArray提前初始化,可选补充:如果需要给已经存在的旧skill也设置默认值,可以在mounted钩子批量赋值:
export default {
  data() {
    return {
      skillArray: {
        skillType: {} // 提前初始化空对象
      }
    }
  },
  mounted() {
    // 给已有的历史skill批量设置默认值
    this.$store.state.skillsList.forEach(skill => {
      this.$set(this.skillArray.skillType, skill.ID, 'set')
    })
  }
}

如果是Vue3场景,不需要使用$set,直接赋值this.skillArray.skillType[newSkill.ID] = 'set'即可,Vue3的Proxy响应式系统原生支持监听对象新增属性。

内容的提问来源于stack exchange,提问作者BATMAN_2008

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 19:18:03