我想使用一个函数,该函数返回一个对象数组并将其用作vuetify select的项。
我也这样使用它:
<v-select
:items='functionToCall()'
......
>
我在函数后控制台登录const,我有想要的输出,但是选择菜单中什么都没有。
答案 0 :(得分:1)
您正在将要调用的实际函数传递给vue标记,而不是实际调用它。您需要像这样调用函数:
<v-select
:items='functionToCall()'
......
>
但是,最好使用computed property,因为仅当组件重新渲染时才调用函数调用。计算出的属性将根据生成其输出的反应性数据进行反应性更新。
ETA:AFIAK,强制重新渲染组件或组件的一部分的唯一可靠方法是更改组件的key
属性。除此之外,$forceUpdate
和其他方法似乎并不能可靠地强制进行重新渲染(无论如何,在大多数情况下,您都不必强制进行重新渲染,如果这样做,您可能正在做某事错误)
答案 1 :(得分:0)
将返回对象数组的函数应该是一个计算属性,您可以像这样使用它:
<v-select
v-model="computedProperty"
item-text="title"
item-value="id"
></v-select>
...
computed: {
computedProperty(){
* your code here where you form the array *
return array
}
}
请注意,如果您确实需要向函数传递一些信息,则可以在如下方法中使用相同的函数:
methods: {
computedProperty(passedInfo){
* your code here where you form the array with passedInfo *
return array
}
}