Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Vuex状态创建中使用函数_Javascript_Vue.js_Vuejs2_Vuex - Fatal编程技术网

Javascript 如何在Vuex状态创建中使用函数

Javascript 如何在Vuex状态创建中使用函数,javascript,vue.js,vuejs2,vuex,Javascript,Vue.js,Vuejs2,Vuex,我正试图使用一个getter来设置我的部分状态,我稍后会定义这个getter export const store = new Vuex.Store({ state : { a : 1, b : getters.multiply(a) }, getters : { multiply : (state) => (param) => return param * 2 }, }) 这是不允许的,因为getter还没有准备好(我想) 文档中确实说明V

我正试图使用一个getter来设置我的部分状态,我稍后会定义这个getter

export const store = new Vuex.Store({
  state : {
    a : 1,
    b : getters.multiply(a)
  },
  getters : {
    multiply : (state) => (param) => return param * 2
  },
})
这是不允许的,因为getter还没有准备好(我想)

文档中确实说明Vuex state属性可以使用函数来创建数据,但我没有看到任何示例,完整状态是否需要通过函数调用或一些道具初始化


感谢您的帮助。

通常,
getters
是获取状态数据的方法。它不应该是两种方式。 在上述示例中,您可以执行以下操作:

const multiply = (params) => params * 2
const INIT_VALUE = 1

export const store = new Vuex.Store({
  state : {
    a : INIT_VALUE,
    b : multiply(INIT_VALUE)
  }
})

谢谢,但是这会在外部设置值,您不能直接传入
a
?为什么要直接传入a?如果b仅依赖于a,则可以为其创建另一个getter(例如getB)。上面的示例仅用于参考,实际的应用程序代码要复杂得多<就我所知,代码>b不能包含getter??问题是
a
是在创建和更改存储后设置的,
b
取决于
a
,但由于状态更改,它们需要是单独的对象。如果需要单独保留
a
b
,那么当您更改
a
值时(例如,您更改了
a
),您还可以更改
b