gpt4 book ai didi

vue.js - 视觉 : How to use store with component?

转载 作者:搜寻专家 更新时间:2023-10-30 22:10:02 26 4
gpt4 key购买 nike

//商店

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'
})
}

// View

<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 状态 getter 和操作。正如您的错误消息所述,您的问题是其他问题......

在您的组件模板中,您不能在根元素上使用 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 - 视觉 : How to use store with component?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39554692/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com