关于vuex传值问题

使用vuex状态管理,想将数据库里的数据传入前台,可是没有反应:

import Vue from 'vue'
import Vuex from 'vuex'
import axios from 'axios'

Vue.use(Vuex)
const store = new Vuex.Store({
 state : {
  songs: []
},
actions : {
  GetSongs: function({ commit }) {
    axios.get('http://localhost:3000/admin/allmusic')
         .then((res) => {
      commit('GiveSongs', {list: res.data})
    },
    (err) => {
      console.log(err);
    })
  }
},
mutations : {
  GiveSongs: (state, { list }) => {
   state.songs = list
  }
},
getters : {},
moudles : {}
})

export default store

这是store.js文件 get值没问题

<script>
import { mapState } from 'vuex'
export default {
name: 'Main',
data() {},
methods:{},
computed:mapState([
    'songs'
  ])
}
</script>

这是组件里的script,引入了mapState

          <ul>
            <li v-for="item in songs">
              <div class="">
                <img v-bind:src='item.src' alt="">
                <a href="#" class="submenu"></a>
                <div class="btn">
                  <a href="javascript:;" class="playbtn"></a>
                  <span class="slogo"></span>
                  <span class="snub">{{item.id}}</span>
                </div>
              </div>
              <p>{{item.name}}</p>
            </li>
          </ul>
      这是html,对照着文档看了好些遍,不知大问题出在哪里了,就是渲染不出来,摆脱给看看,谢谢哈
阅读 5.4k
1 个回答

试试

computed: mapState({
    songs: state => state.songs,
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题