【发布时间】:2021-05-01 08:49:28
【问题描述】:
我正在尝试从另一个模块更新状态。结构是。
store.js
|
|-- yields.js
|
|--analysis (sub-folder)
|
|
---actions.js
|
---mutations.js
|
---state.js
所以按照建议,我在 actions.js 中使用了这个:
export const actions = {
analysisAction({
commit,
rootState
}, input) {
commit('stateFetchParamsStart', input); // Commit in this module
commit('yields/statePRdate', input, {
root: true
}); // Commit in another module
},...
在 yield.js 中添加了一个突变:
const mutations = {
statePRdate: (state, input) => {
state.PRdate = input;
},...
并在计算属性中调用它,例如:
computed: {
start: {
get() {
return this.$store.state.analysis.fetchParams.start
},
set(value) {this.$store.dispatch('analysisAction', value);
}
},...
methods: {
...mapActions([
'otherActions',
'analysisAction'
]),
我也尝试了命名空间变体,但它给了我一个错误。使用此解决方案,state.fetchParams.start 的突变正在起作用,但出现错误:[vuex] unknown mutation type: yields/statePRdate
所以它不能调用其他状态的突变。
【问题讨论】:
-
@Radeanu 我就是这样做的。只是将值设置为空。但我需要将其设置为值。
-
如果您不使用命名空间模块,则必须从第二次提交中删除
yields/。不能混合和匹配命名空间语法 -
@Dan 再次感谢!你救了我的命。 :)