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

Vue.js开发SPA时新增选项后第二行变体输入框不显示如何解决

问题根因

新增选项时没有给新的选项对象初始化variants数组,模板中渲染变体输入框的v-for指令没有可遍历的目标,因此不会显示对应的输入框。

修复方案

修改methods中的add方法,新增选项时保持和初始选项一致的结构即可:

methods: {
    add() {
        // 新增时完整初始化结构,包含variants数组
        this.options.push({ 
            name: '',
            variants: [
                {
                    name: ''
                }
            ] 
        });
    },
    addVariant(index){
        this.options[index].variants.push({name: ''})
        console.log(this.options[index].variants)
    }
}

如果是Vue2环境,若需要给已存在的选项对象补加variants属性,需要用this.$set(this.options[index], 'variants', [])保证响应式,本次直接在新增时就初始化属性不需要额外操作。

可选优化建议

当前使用数组索引作为v-for的key值属于非最佳实践,如果后续有删除、排序选项的需求,建议给每个option和variant生成唯一id作为key,避免出现渲染异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 12:54:02