我正在尝试采取全球行动。要访问它,我必须使用rootState
,因此在提交时必须添加root选项参数。如果我将null
作为第二个参数,即有效载荷,则可以使用,但是如果我将其保留为空,则无法使用。
工作版本:
context.commit('shared/clearError', null, { root: true })
不起作用:
context.commit('shared/clearError, { root: true })
所以问题是,如果documentation中提到的第二个参数是可选的,为什么没有第二个参数就无法工作?
答案 0 :(得分:2)
您可以使用以下任一方法进行突变:
commit(mutation: Object, options?: Object)
commit(type: string, payload?: any, options?: Object)
您正在混合它们:您使用字符串选择突变,因此它将选择具有三个参数的第二种方法。您的options对象被选为有效负载,并且可能没有您的突变期望的数据。
这应该可以正常工作:context.commit({ type: 'shared/clearError'}, { root: true }
(此外,您在第二条语句中缺少结尾引号,但我想这只是一个错字)
有关更多详细信息,请参见https://vuex.vuejs.org/guide/mutations.html和https://vuex.vuejs.org/api/#vuex-store-instance-methods