我的Vuex.Store出现问题
我想使用两个状态条目和一个带有吸气剂的搜索条件(state.array和state.selected)来获取一个对象(getter.getRecipe)。然后,我想将该结果存储在我的状态(state.recipe)中,以便能够在组件内进行更新(即,根据客户端操作更改配方对象的一个键)。 但是,我不知道如何在我的状态下存储getter的结果(“ this.getters.getRecipe”无法正常工作...)。 对提示非常有帮助。非常感谢。
//store.js (vuex store)
export const store = new Vuex.Store({
state: {
array: [recipe1, recipe2],
selected: 0,
recipe: this.getters.getRecipe()
},
getters: {
getRecipe: (state) => {
return state.array[state.selected]
}
}
})
答案 0 :(得分:0)
相反,您应该使用Method style getters with arguments:
您还可以通过返回函数将参数传递给getter。当您要查询存储中的数组时,这特别有用:
一个基本示例:
d = [('Total_RFQ', 'size'), ('Done_RFQ', lambda x: x.str.contains('Done').sum())]
df=df.groupby(['display_name','security_type1','currency_str'])['state'].agg(d).reset_index()
df['Done_Pct'] = df['Done_RFQ'] / df['Total_RFQ'] * 100
print (df)
display_name security_type1 currency_str Total_RFQ Done_RFQ Done_Pct
0 A GOVT USD 1 1 100.0
1 B CORP NZD 1 0 0.0
2 B CORP USD 1 1 100.0
3 C CORP EUR 2 1 50.0
4 C CORP GBP 2 2 100.0
5 C CORP USD 1 1 100.0
然后,使用示例:
getters: {
// ...
getTodoById: (state) => (id) => {
return state.todos.find(todo => todo.id === id)
}
}
或在组件内部:
store.getters.getTodoById(2) // -> { id: 2, text: '...', done: false }
这样,您可以确保状态保持纯数据结构,并遵循通量模式提出的一种数据流方式。