element的select下拉框设定初值后,不能重新选择的问题

记录一个开发中使用element ui遇到的问题,在给select 赋予初始值的时候,不能修改,准确说,data中的值已经改变了,但视图上没有更新。

<el-select
  clearable
  size="mini"
  placeholder="理由"
  v-model="reason[scope.row.id]"
  multiple
>
  <el-option
    v-for="item in options[name]"
    :key="item.value"
    :label="item.label"
    :value="item.value"
  ></el-option>
</el-select>

在网上找了很多,发现都不能解决问题,比如$forceUpdate(),因为根本就无法出发select的change事件,最后发现是在初始赋值时出现了问题,因为select绑定的是一个对象的属性,因此使用普通的=赋值后,vue不能检测到对象属性的修改,所以在初始赋值时,先使用$set()初始化。

this.$set(this.reason, row.id, []);
if (row.is_pass == 0) {
  this.$set(this.reason, row.id, row.reason.split(","));
}

所以,重点就是设置初始值时一定要使用$set()

声明:该文章系转载,转载该文章的目的在于更广泛的传递信息,并不代表本网站赞同其观点,文章内容仅供参考。

本站是一个个人学习和交流平台,网站上部分文章为网站管理员和网友从相关媒体转载而来,并不用于任何商业目的,内容为作者个人观点, 并不代表本网站赞同其观点和对其真实性负责。

我们已经尽可能的对作者和来源进行了通告,但是可能由于能力有限或疏忽,导致作者和来源有误,亦可能您并不期望您的作品在我们的网站上发布。我们为这些问题向您致歉,如果您在我站上发现此类问题,请及时联系我们,我们将根据您的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。