如何在 vue.js 中显示包含对象的数据数组?

Posted

技术标签:

【中文标题】如何在 vue.js 中显示包含对象的数据数组?【英文标题】:How to display an array of data containing objects in vue.js? 【发布时间】:2018-06-01 08:15:33 【问题描述】:

我的 vue 组件是这样的:

<template>
    ...
        <ul v-if="!selected && keyword">
            <li v-for="state in filteredStates" @click="select(state.name)"> state.name </li>
        </ul>
    ...
</template>
<script>
    export default 
        ...
        computed: 
            filteredStates() 
                const data = this.$store.dispatch('getProducts', 
                    q: this.keyword
                )
                data.then((response) => 
                    console.log(response.data)
                    return response.data
                )
            
        
    
</script>

console.log(response.data) 的结果如下:

我想像上图一样显示数组数据。但它不显示价值。可能我在vue组件中的循环还是错了

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

filteredStates 执行异步 API 请求,您不能在计算属性中执行此操作(事实上,您不会从该属性返回任何内容,因此它是无用的)。

您应该将filteredStates 设为数据属性,然后观察keyword 的更改,然后更新filteredStates 作为响应。

类似:

data() 
  return 
    filteredStates: []
  
,

watch: 
  keyword(value) 
    this.$store.dispatch('getProducts',  q: value )
    .then(res => 
      this.filteredStates = res.data;        
    )
  

【讨论】:

以上是关于如何在 vue.js 中显示包含对象的数据数组?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Vue.js 为数组(数据)中的所有对象添加属性?

Vue Js Element UI如何在表格列中呈现数组对象

如何在 Vue.js 中使用 v-for 遍历对象数组?

如何在 vue.js 应用程序中访问外部 json 文件对象

如何从对象数组中获取特定数据并存储在js(vue js)中的新数组中

如何在 Vue.js 中显示错误数组?使用 Laravel 进行后端验证