【发布时间】:2020-11-23 21:16:02
【问题描述】:
我正在做一个项目(只是个人)并尝试熟悉 vuex。我设法做了很多(到目前为止),但有一个坚果我无法破解。
我正在尝试访问一个字段 -> 特定员工的薪水
这是我的 store.js (vuex)
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export const store = new Vuex.Store({
state: {
emps: [
{name: 'John', salary: 110},
{name: 'Jimmy', salary: 80}
],
},
getters: {
},
mutations: {
getCurrentSalary: (state, data) => {
var empIndex = findEmpIndex(data);
console.log(state.emps[empIndex].salary); // this is ok!!
return state.emps[empIndex].salary;
}
},
actions: {
getCurrentSalary: ({commit}, payload) => {
commit('getCurrentSalary', payload);
}
}
});
// helpers
function findEmpIndex (stockName) {
return store.state.markets.findIndex(item => item.name === stockName);
}
在特定员工的一个组件中,我这样称呼它:
<template lang="html">
<div class="container">
Current Salary: {{ getCurrentSalary("John") }}
</div>
</template>
<script>
import {mapActions} from 'vuex'
export default {
methods: {
...mapActions([
'getCurrentSalary'
])
}
}
</script>
<style lang="css" scoped>
</style>
但是有一个问题是薪水可能会发生变化,所以我想立即获得变化(无论何时发生)
我可以正确看到控制台日志(这至少意味着正在调用该函数..但打印时显示:
Current Salary: [object Promise]
它不想打印值,而是打印一个承诺。我做了很多搜索,但没有找到(或者可能理解)如何解决这个问题……如果有任何类似的论坛或问题对此有解决方案的请发送链接(抱歉)
【问题讨论】: