//store

export default {
  state: {
    aboutModels: []
  },
  actions: {
    findBy: ({commit}, about)=> {
      //do getModels
      var aboutModels = [{name: 'About'}] //Vue.resource('/abouts').get(about)
      commit('setModels', aboutModels)
    }
  },
  getters: {
    getModels(state){
      return state.aboutModels
    }
  },
  mutations: {
    setModels: (state, aboutModels)=> {
      state.aboutModels = aboutModels
    }
  }
}

//组成部分

import {mapActions, mapGetters} from "vuex";

export default {
  name: 'About',
  template: require('./about.template'),
  style: require('./about.style'),
  created () {
    document.title = 'About'
    this.findBy()
  },
  computed: mapGetters({
    abouts: 'getModels'
  }),
  methods: mapActions({
    findBy: 'findBy'
  })
}

//视野

<div class="about" v-for="about in abouts">{{about.name}}</div>

//错误

vue.js:2532[Vue warn]: Cannot use v-for on stateful component root element because it renders multiple elements:
<div class="about" v-for="about in abouts">{{about.name}}</div>

vue.js:2532[Vue warn]: Multiple root nodes returned from render function. Render function should return a single root node. (found in component <About>)

推荐答案

您正在正确映射Vuex状态获取程序和操作.正如错误消息所述,您的问题是其他问题...

在组件模板中,不能对根元素使用v-for指令.例如,这是不允许的,因为您的组件可以有多个根元素:

<template>
   <div class="about" v-for="about in abouts">{{about.name}}</div>
</template>

而是这样做:

<template>
   <div>
      <div class="about" v-for="about in abouts">{{about.name}}</div>
   </div>
</template>

***修复了模板标签中的打字错误**

Vue.js相关问答推荐

Vue CLI: 如何在一个vtextfield更改时让另一个vtextfield的值也同时更改,但同时又可以覆盖它?

Vue3外部数组的响应性

有没有办法初始化一个保留初始 HTML 的 Vue 对象

在 Vue 中启用(控制台)记录路由事件

使用 Vue 和 JS 下载 CSV 文件

如何在 vue.js 2 的其他组件中调用方法?

为什么Vue.js 使用单字标签

更新 v-for 中使用的数组内的对象时,Vue js react性问题

Nuxt 打开链接到模态

SVG 加载 vue-svg-loader; [Vue 警告]:无效的组件定义

NUXT如何将数据从页面传递到布局

Vuejs:我应该在 vue-router SPA 中的哪里放置一些常用的 js 工具?

Vue 动态组件事件绑定

如何从 v-for 创建的对象中绑定多个类?

基本 vue.js 2 和 vue-resource http 获取变量赋值

错误:找不到模块'@vue/babel-preset-app'

是否有 v-cloak 逆?

Vue.js 和 jQuery datepicker/timepicker 双向绑定

TypeError: Object(...) 不是 Vue 中的函数

为什么 router.currentRoute.path 没有react?