如何在VueJs的数据表中显示数据?

时间:2019-10-15 15:07:54

标签: javascript jquery vue.js promise datatables

数据附加在数据表旁边,而不是内部。

我正在以vuex的方式从API提取数据(记录数组),并将状态(数组)从吸气剂返回到使用了数据表的组件中。

We were here today. You were here on 24.10.2018.
import axios from "../../assets/constants";
import router from '../../router'

const state = {
    users: []
}
const getters = {
    users: state => state.users,
    blockedUsers: state => state.blockedUsers,
    user: state => state.user
}

const actions = {
    async getUsers({ commit }) {
        await axios.get(`user`)
            .then(res => {
                commit('setGetUsers', res.data)
            })
            .catch(err => console.log(err.response.data.message));
    })
},

const mutations = {
    setGetUsers: (state, newUsers) => (state.users = newUsers),
}

export default {
    state,
    getters,
    actions,
    mutations
}

结果应该是因为我从API提取的数据必须显示在数据表中。

据我了解,这里引起的问题是

$(“。zero-configuration”)。DataTable();

这是在

之前执行

this.getUsers()

这不是正确的解释,因为我将await与axios一起使用。

谁能解释为什么会这样?

1 个答案:

答案 0 :(得分:0)

事实证明,当我从axios获得响应后进行突变时,需要花费一些时间来设置状态。由于我不在这里使用诺言,因此在状态发生变化时,

  

$(“。zero-configuration”)。DataTable();

控制
  

this.getUsers()

并在完成之前执行。

我通过在getUsers操作中使用promise遇到了这个问题

getUsers({ commit }) {
        return new Promise(async (resolve) => {
            await axios.get(`user`)
                .then(async res => {
                    await commit('setGetUsers', res.data)
                    resolve()
                })
                .catch(err => console.log(err.response.data.message));
        })
    },

现在它就像一种魅力!