【发布时间】:2021-09-06 14:51:55
【问题描述】:
我正在尝试更新数组数组并将其呈现为反应变量,但 DOM 并未反映这些更改。
为此,我使用了 2 个组件,一个父组件和一个子组件:
父组件 实例化子组件并传递一个方法(fetchOptionsFn)作为prop,它获取一些数据并更新位于子组件中的数组
<component :is="DynamicDataPairForm"
:fetchOptionsFn="fetchOptionsFn"
fetchOptionsFn (search, loading, selectOptionsArray, index) {
if (search.length >= 3) {
pptDocumentLibraryService.findByTitle(search).then(res => {
selectOptionsArray[index] = res.data
}).catch(err => console.log(err))
}
子组件 定义一个空数组,在 DOM 中定义一个 SELECT,当搜索完成时,这个数组被父继承函数修改。
<tr v-for="(entity,index) in filteredEntityList" :key="entity[entityIdField]">
<v-select
:options="selectEntityArray[index]"
@search="(search, loading) => {
fetchSelectEntityOptions(search, loading, index) }"
/>
</tr>
props: {
fetchOptionsFn: { type: Function, required: false, default: () => {} },
},
data: {
selectEntityArray: []
},
methods: {
fetchSelectEntityOptions (search, loading, index) {
this.fetchOptionsFn(search, loading, this.selectEntityArray, index)
}
}
当这个函数被调用(fetchSelectEntityOptions),但数组(selectEntityArray)在DOM中没有改变时,问题就来了。
有什么想法吗? 谢谢!
【问题讨论】:
-
你使用的Vue是什么版本的?
-
2.6 版@MichalLevý
标签: javascript vue.js vuejs2