在vuex getter的对象条目中嵌套的数组上使用join()

时间:2019-02-12 14:42:26

标签: vue.js ecmascript-6 vuejs2 vuex state-management

我无法让我的vuex吸气剂以我想要的方式返回错误。

我的错误对象的结构如下:

errors: {
  email: ['error message.']
  email_confirm: ['error message.', 'another error message.']
}

我希望它是这样的结构:

errors: {
  email: 'error message',
  email_confirm: 'error message. another error message.'
}

到目前为止,我已经尝试过:

const getters = {
  errors: state => Object.keys(state.errors).map(key => state.errors[key].join(' '))
};

^这将返回连接的错误对象值,但没有对象的原始键。

关于如何做到这一点的任何想法? :)

2 个答案:

答案 0 :(得分:2)

一台减速机应该为一根衬管工作。

const getters = {
  errors: state => Object.keys(state.errors).reduce((acc, key) => {
    acc[key] = state.errors[key].join(' ')
    return acc
  }, {})
};

答案 1 :(得分:1)

我认为单行不可能。您可以通过以下方式实现:

const getters = {
    errors: (state) => {
       let newErrors = {};
       Object.keys(state.errors).map( key => newErrors[key] = state.errors[key].join(' ') )
       return newErrors;
    }
};