HTML部分:

<el-checkbox-group
                v-model="checkedCities"
                :min="1"
                :max="2"
                @change="changeSelectCustomize()"
              >
                <template>
                  <el-col
                    :span="16"
                    style="display: flex;justify-content: space-between;border: 1px solid #ccc"
                  >
                    <div style="margin-right: 10px;">
                      <el-checkbox
                        style="margin-left: 10px;"
                        v-for="(cus) in basicInfo.customizeLabelList"
                        :label="cus.content"
                        :key="cus.content"
                      >
                        <div style="display: flex;justify-content: space-between;">
                          <div style="margin-left: 10px;">{{cus.content}}</div>
                          <div
                            @click.stop="deleteOneCustomize(cus)"
                            class="el-icon-delete"
                            title="删除"
                          ></div>
                        </div>
                      </el-checkbox>
                    </div>
                  </el-col>
                </template>
              </el-checkbox-group>

js部分:

export default {
  data() {
    return {
      //自定义指标列表
      customizeList: {
        name: "0",
        content: "",
        isChecked: "0"
      },
      checkedCities: [],
      basicInfo: {
        companyName: "",
        address: "",
        phone: "",
        tel: "",
        fax: "",
        other: "",
        bank: "",
        isPrintPage: "0",
        isShowPrintNo: "1",
        isShowMoney: "1",
        time: "",
        customizeLabelList: []
      },
      },
       methods: {
    // 自定义表单名方法开始
    //选择自定义指标
    changeSelectCustomize() {
      console.log(this.checkedCities);
      console.log(this.basicInfo.customizeLabelList);
      let id = 0;
      for (var j = 0; j <= this.checkedCities.length; j++) {
        console.log(this.checkedCities.length);
        for (var i = 0; i <= this.basicInfo.customizeLabelList.length; i++) {
          console.log(this.checkedCities[j]);
          console.log(typeof this.checkedCities[j]);
          // console.log(i,this.basicInfo.customizeLabelList[i])
          // console.log(j,this.checkedCities[j].content)
          if (
            this.basicInfo.customizeLabelList[i].content ===
            this.checkedCities[j]
          ) {
            this.basicInfo.customizeLabelList[i].isChecked = "1";
            this.basicInfo.companyName = this.checkedCities[j];
            // this.$set(this.basicInfo.customizeLabelList[i], 'isChecked', '1');
            console.log("==========");
            console.log(this.basicInfo.customizeLabelList[i].isChecked);
          } else if (
            this.basicInfo.customizeLabelList[i] !== this.checkedCities[j]
          ) {
            this.basicInfo.customizeLabelList[i].isChecked = '0';
            // this.$set(this.basicInfo.customizeLabelList[i], 'isChecked', '0');
            console.log("---------");
            console.log(this.basicInfo.customizeLabelList[i].isChecked);
          }
        }
      }
    },
    }
点击上方的多选框内容就会报下方的错误



解决方法:checkedCities问题,循环第二遍是找不到该变量显示undefined,找一个中间变量替换掉checkedCities,就不会报错了
let customizeLabelListNew = []; customizeLabelListNew = JSON.parse(JSON.stringify(this.checkedCities));

更多推荐

TypeError: Cannot read property 'content' of undefined的问题