iView Select 框在页面加载的时候会弹出还没有触发的方法里面的错误信息,如下:
代码:
<Select v-model="form.id" filterable clearable @on-change="selectAccount">
<Option v-for="account in accountsList" :value="account.id" :key="account.id">
{{ account.name }}({{ account.id }})
</Option>
</Select>
form.id
初始值给的是 -1
,报错信息是写在 selectAccount
函数里,页面加载的时候(mounted
中)还没有触发这个方法,但是错误信息已经提示了。说明 form.id
的值已经改变了,在 watch
中检测发现 form.id
的值由 -1
变成 ''
了。
然后我就知道问题出在哪了(///▽///)
是因为 accountsList
中没有 id
是 -1
的, form.id
的值改变了就会触发 selectAccount
函数从而弹出错误信息。
解决办法是给一个默认 Option
值是 -1
,如下:
<Select v-model="formCampaign.act_id" filterable clearable @on-change="selectAccount">
<Option :value="-1">
请选择广告账户
</Option>
<Option v-for="account in accountsList" :value="account.id" :key="account.id">
{{ account.name }}({{ account.id }})
</Option>
</Select>
以上。