动态添加input输入框报错?



我要在点击添加的时候,动态添加一排输入框,但是我现在点击添加时就会报错,是哪里出了问题?

代码如下:

<!-- 商品参数 -->
          <div class="product1" v-show="msg === 1">
            <p class="add_describe" @click="addmore()">添 加</p>
            <div
              v-for="item1 in openData.productDescribeList"
              :key="item1.index"
            >
              <el-form-item label="参数名称" prop="name">
                <el-input v-model="item1.name"></el-input>
              </el-form-item>

              <el-form-item label="参数内容" prop="describe">
                <el-input
                  type="textarea"
                  resize="none"
                  :rows="6"
                  v-model="item1.describe"
                ></el-input>
              </el-form-item>
            </div>

            <!-- 添加的商品参数 -->
            <div v-for="(item, index) in openData.dynamicItem" :key="index">
              <el-form-item
                label="参数名称"
                :prop="'dynamicItem.' + index + '.name'"
              >
                <el-input
                  v-model="item.name"
                  placeholder="请在此输入参数名称"
                ></el-input>
              </el-form-item>

              <el-form-item
                label="参数内容"
                :prop="'dynamicItem.' + index + '.describe'"
              >
                <el-input
                  type="textarea"
                  resize="none"
                  :rows="6"
                  v-model="item.describe"
                  placeholder="请在此输入参数内容"
                ></el-input>
              </el-form-item>

              <el-form-item>
                <i class="el-icon-delete" @click="deleteItem(item, index)"></i>
              </el-form-item>
            </div>
</div>
addmore() {
      console.log(this.openData.dynamicItem);
      this.openData.dynamicItem.push({
        name: "",
        describe: "",
      });
},
阅读 1.9k
2 个回答

this.openData.dynamicItem 这个值是 undefined,没有 push 方法,因此报错。

检查一下 this.openData.dynamicIte 为啥不是数组,如果要兼容,可以这样写:

(this.openData.dynamicIte = this.openData.dynamicIte || []).push({})

dynamicItem 你事先声明了他是数组了吗? 前面console.log 打印的是undefined的

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