没有有效负载参数,Vuex提交将无法工作

时间:2018-10-24 22:43:24

标签: javascript vue.js vuejs2 vuex

我正在尝试采取全球行动。要访问它,我必须使用rootState,因此在提交时必须添加root选项参数。如果我将null作为第二个参数,即有效载荷,则可以使用,但是如果我将其保留为空,则无法使用。

工作版本:

context.commit('shared/clearError', null, { root: true })

不起作用:

context.commit('shared/clearError, { root: true })

所以问题是,如果documentation中提到的第二个参数是可选的,为什么没有第二个参数就无法工作?

1 个答案:

答案 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.htmlhttps://vuex.vuejs.org/api/#vuex-store-instance-methods