v-for返回数组的函数

时间:2017-12-13 17:45:57

标签: javascript vuejs2

<div class="facet-item" v-for="(item, facetItemIndex) in displayFacetItems(facetsIndex)" :key="facetItemIndex">
  <facet v-bind:item="item"  v-bind:facet="facet"></facet>
</div>

displayFacetItems (facetsIndex, searchTerm) {
  if (!searchTerm || searchTerm === '') return this.facets[facetsIndex].facetItems
    return this.facets[facetsIndex].facetItems.filter((facetItem) => {
      return _.includes(facetItem.name.toLowerCase(), searchTerm.toLowerCase())
    })
}

有人可以向我解释为什么v-for在返回过滤对象数组时不会更新:

return this.facets[facetsIndex].facetItems.filter((facetItem) => {
  return _.includes(facetItem.name.toLowerCase(), searchTerm.toLowerCase())
})

当我做这样的事情时,我可以让v-for更新:

this.facets[facetsIndex].facetItems = this.facets[facetsIndex].facetItems.filter((facetItem) => {
  return _.includes(facetItem.name.toLowerCase(), searchTerm.toLowerCase())
})

但问题是这会改变原始数组,这是我不可能发生的。

非常感谢任何指示,谢谢。

0 个答案:

没有答案