vuex 组件mounted钩子函数异步请求 页面不渲染。

发布于 2022-09-11 19:59:42 字数 853 浏览 13 评论 0

问题描述

在具体组件中mounted生命周期中,使用fetch发送异步请求,在vuex的action和mutation中都可以拿到数据
但是页面不渲染

在action中使用了async和await没有获得预期效果

原始代码:

组件中
//template中elementui中的table
 <el-table
      :data="tableData"
      style="width: 100%">
//js      
data() {
    return {
      tableData: this.$store.state.tableData
    }
  },
 mounted(){
      fetch('http://jsonplaceholder.typicode.com/users')
      .then(res => res.json())
      .then(data => this.$store.dispatch("tableData",{data:data}))

  },

//store.js中
const state = {
    tableData:[]
}

const mutations = {
    tableData(state,payload){
        state.tableData = payload.data
    }
}
const actions = {
    tableData({commit},payload){
        commit('tableData',payload);
    }
}

在action和mutations中payload都是可以取到数据的,但是页面不渲染

页面也没有报错,求大神指导。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

变身佩奇 2022-09-18 19:59:42

应该还是生命周期的问题,data数据加载时,你的vuex.state还没有数据。
可以用computed试试

computed: {
  tableData  () {
    return this.$store.state.tableData;
  }
}
小草泠泠 2022-09-18 19:59:42

组件中v-if="tableData"试试

拥抱我好吗 2022-09-18 19:59:42

获取到后 拷贝一个作为数据源 试试

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文