提问者:小点点

vue.js的意外选择下拉行为


如果我从select元素中删除background-green类绑定或value绑定,那么它就像普通的下拉列表一样工作。但是假设我没有删除background-green类绑定,那么在选择之后,选择的选项不会显示,但是如果我再次选择相同的选择选项或其他选项,则会显示它。与value绑定的行为相同。为什么第二次还能用?这是我真正的担心/困惑。

下面是用简单代码运行示例的链接


共1个答案

匿名用户

问题是,:value=“DefaultValue”实际上没有更改(因为DefaultValue从未更改),而且第一次发生重播的副作用。

由于:value本质上总是“”,因此每当重新呈现的值重置回defaultvalue(空白)

在第一次选择之后它看起来工作的时间内,实际发生的是DOM本地状态显示您选择的内容。由于vdom没有变化(背景-绿色已经存在),Vue不会重新呈现,因此不会重置值。

解决此问题的正确方法是在输入事件期间更新defaultvalue(可能重命名),或者使用v-model。关键是让Vue在任何时候都设置正确的值。

handleInput(e) {
  this.fillBg = true;
  this.defaultValue = e.target.value;
},