【发布时间】:2018-11-20 12:58:38
【问题描述】:
我目前遇到了 VueJS vuex 和 Axios 的问题:
我得到一个带有 axios 的数组 -> 在该数组上循环以这种方式填充它的子元素: “评分表”有很多自我关系,所以一个评分表可以有多个子评分表
动作:
actions: {
get_main_rubriques: ({ commit }) => {
axios.get('http://localhost:8180/unv-api/rubrique/search/rsql?query=niveau==1')
.then(resp => {
let results = resp.data._embedded.rubriques
results.forEach(element => {
axios.get('http://localhost:8180/unv-api/rubrique/search/rsql?query=idpere==' + element.id)
.then((result) => {
element.childs = result.data._embedded.rubriques
})
.catch((err) => {
console.log(err)
})
})
console.log(results)
commit('MUTE_MAIN_RUBRIQUES', results)
})
.catch(err => {
console.log(err)
})
}
}
突变:
MUTE_MAIN_RUBRIQUES: (state, rubrique) => {
state.rubriques = rubrique
}
APP.VUE
computed: {
...mapState([
'rubriques'
])
},
created: function () {
this.$store.dispatch('get_main_rubriques')
}
<b-dropdown v-for="item in rubriques" :key="item.id" v-bind:text="item.libelle" id="ddown1" class="m-md-1">
<b-dropdown-item-button v-for="child in item.childs" :key="child.id" v-bind:text="child.libelle">
{{ child.id }} - {{ child.libelle }}
</b-dropdown-item-button>
</b-dropdown>
问题是:父下拉列表显示没有任何问题,但子级没有,它们也不存在于状态中,但在我的操作中,它们存在于 console.log(results) 之前的 commit 中。
我做错了吗?谢谢。
【问题讨论】:
-
你试过 Vue.set(state, 'rubriques', rubrique) 吗?
-
@Darem 我做了,是的,也不起作用,国家“rubriques”仍然没有孩子
标签: javascript vue.js axios vuex