javascript - Vuex 提交在没有有效负载参数的情况下无法工作
问题描述
我正在努力采取我的全球行动。要访问它,我必须使用rootState
,所以我必须在提交时添加 root 选项参数。如果我将null
其作为第二个参数(即payload )传递,它会起作用,但如果我将其留空,它将不起作用。
工作版本:
context.commit('shared/clearError', null, { root: true })
不工作:
context.commit('shared/clearError, { root: true })
所以问题是为什么如果没有第二个参数它是可选的,如他们的文档中所述,它不能工作?
解决方案
您可以使用以下任一方法提交突变:
commit(mutation: Object, options?: Object)
commit(type: string, payload?: any, options?: Object)
您将它们混合在一起:您使用字符串选择突变,因此它选择具有三个参数的第二种方法。您的选项对象被选为有效负载,并且可能没有您的突变期望的数据。
这应该可以按您的预期工作:context.commit({ type: 'shared/clearError'}, { root: true }
(另外,您在第二个语句中缺少结束引号,但我想这只是一个错字)
有关更多详细信息,请参阅https://vuex.vuejs.org/guide/mutations.html和https://vuex.vuejs.org/api/#vuex-store-instance-methods
推荐阅读
- java - Selenium 驱动程序导航到 url 但在 java 中它给出错误或不执行下一行
- cas - CAS 通过另一个子域进行身份验证
- django-rest-framework - drf_yasg 不将 TYPE_ARRAY 作为有效类型
- payment - 使用对话流聊天机器人接受付款
- python - Python:对已关闭文件的 I/O 操作
- .net - SqlCommandProvider 无法使用表值参数调用存储过程
- javascript - getJSON 与,然后。不调用数组?
- python - 为什么这个正则表达式不能通过变量在列表中搜索
- python - Python排序在列表中运行
- oop - 域驱动设计中多个表的单个存储库与多个存储库