2 回答

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超5個(gè)贊
官方文檔的說法是:觸發(fā) mutation handler 的方法是 dispatch 一個(gè) mutation 的事件名。
function makeAction(type) { return ({ dispatch }, ...args) => dispatch(type, ...args); };
我理解的是:這段代碼的作用就是觸發(fā)一個(gè)名為‘type‘的mutaition事件,...args是額外的參數(shù)。
但是這里的{ dispatch }參數(shù)我不明白是什么,希望大神能幫忙補(bǔ)充一下。

TA貢獻(xiàn)1712條經(jīng)驗(yàn) 獲得超3個(gè)贊
這個(gè)是 es6 的語法,是“解構(gòu)賦值使用”, 比如:
function foo({x, y = 5}) {
? console.log(x, y);
}
foo({}) // undefined, 5
foo({x: 1}) // 1, 5
foo({x: 1, y: 2}) // 1, 2
foo() // TypeError: Cannot read property 'x' of undefined
對于 vuex 中的 action 來說,actions 調(diào)用的第一個(gè)參數(shù)是store
的實(shí)例,有dispatch
等方法屬性,調(diào)用相當(dāng)于:
function?foo({dispatch})?{ ??dispatch(); } foo({dispatch:?function(){...}})
添加回答
舉報(bào)