我的州有一系列容器,我试图设置一个将其拆分为活动和非活动容器的getter。
containers: [{
id: '1',
name: 'test container',
image: 'some image',
state: 'running',
status: 'Running'
}, {
id: '2',
name: 'another test container',
image: 'some image',
state: 'stopped',
status: 'Running'
}]
我用它来获取下面的数组。
export const x = state => _.partition(state.containers, c => c.state === 'running');
这个问题是我希望它拆分并分配给activeContainers和stoppedContainers然后导出。
[
[
{
"id": "1",
"name": "test container",
"image": "some image",
"state": "running",
"status": "Running"
}
],
[
{
"id": "2",
"name": "another test container",
"image": "some image",
"state": "stopped",
"status": "Running"
}
]
]
我尝试过使用ES6的解构,但我觉得我错过了一些东西,或者把解构错误放在错误的位置,以便与Vuex合作。
export const [activeContainers = [], stoppedContainers = []] = state => _.partition(state.containers, c => c.state === 'running');
答案 0 :(得分:2)
functions
getter
根据问题中的评论,确实不能有getter
映射的两个属性。阅读更多内容,您不希望另外获得activeContainers
和stoppedContainers
在浏览了您分享的link后,我找到了一种方法,您仍然可以获得与参数化getter
非常接近的内容。
Here你可以完全看到它。
getters = {
getContainer: (state) => {
const [activeContainer = [], inactiveContainer = []] = _.partition(state.containers, c => c.state === 'running')
return (container) => {
return (container === 'activeContainer') // returned function
? activeContainer
: inactiveContainer
}
}
}
在这个getter中,我返回一个函数,它可以接受参数并得到一些非常接近你想要的东西。