在外部更改v模型道具时更新vue-select组件

时间:2019-04-26 01:10:58

标签: vue-select

当我确定问题出在哪里时,我确定会踢自己,但我尝试使用vue-select编辑所选项目中的字段。

从本质上讲,我希望修改在组件外部的v模型中传递的内容,并让组件更新所选的项目和视图。选项道具不会改变。

描述问题的最好方法是使用我在codesandbox上发布的示例 在示例中,有一个包含课程名称和证书ID的项目列表(在现实生活中,这是mongodb objectId)。我希望能够选择这些项目之一,并能够通过输入(课程名称)和v-select进行认证来对其进行编辑。 v-select包含可用的具有可读描述的证书的列表(在这种情况下为名称),我希望能够使用下拉框选择所需的证书并填充已编辑的项目条目。

所有这些都很好,但是,当我单击“编辑第二项”时,编辑器部分将更新为所选项的课程名称,但是vue-select不会更新以反映其他所选项。

示例自动选择列表中的第一个项目并显示在“编辑器”部分中,更改课程或“证书”将反映在“项目”部分的屏幕底部。单击“编辑第二个项目”,我希望“课程”字段更改为第2个项目,“证书”下拉列表显示为专业。

希望有人可以引导我去做一些显而易见的事情。

2 个答案:

答案 0 :(得分:1)

一种解决方法,直到修复该错误为止,是将您的v模型添加为v选择中的:key属性,如以下线程所示:https://github.com/sagalbot/vue-select/issues/855#issuecomment-510333782

<v-select
    v-model="selected"
    :options="options"
    :key="selected"
    :reduce="op => op.id"
/>

答案 1 :(得分:0)

Vue在此处选择作者。这是v3.0中的错误:https://github.com/sagalbot/vue-select/issues/855

如果您的列表中包含很多项目,那么从选项列表中查找“减少”的值可能是一项昂贵的操作,因此它是在实例化时完成的。不幸的副作用是,对组件外部绑定值的任何更改都不会像您期望的那样下推到组件。

我会尽快在3.1.1中发布补丁。