Vuexの勉強でストアというものを試してみたのですが、
バインディングができていないようです。
watch等を使わないといけないのでしょうか?
解決したいこと
index.jsのtestListの値が変わった時、
index.vueのリスト(li)に反映したい
index.js
js
1export const state = () => ({ 2 testList: [], 3}) 4 5export const mutations = { 6 addList(state, list){ 7 state.testList[state.testList.length] = list; 8 console.log(state.testList); #@1 9 }, 10} 11 12export const getters = { 13 getList: state => { 14 return state.testList 15 } 16}
index.vue
js
1・・・中略 2 3<button @click="getTestList()"> 4<li v-for="(val, index) in $store.getters.getList" :key="index"> 5{{ val.id }} 6</li> 7 8・・・中略 9 10methods: { 11 getTestList() { 12 const response = this.$axios.$get("http://localhost/testapi") 13 .then( response => { 14 this.$store.commit('addList', response.result) 15 console.log(this.$store.getters.testList); #@2 16 }) 17 .catch( error => { 18 console.log(error) 19 }) 20 } 21}, 22 23・・・中略
確認したこと
@1のconsole.logでは確かに値が変更されており、
@2でも追加後の値が確認できています。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/06/08 15:11