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

Using join() on array nested in object entries from vuex getter

我无法按照我想要的结构让我的 vuex getter 到 return 错误。

我的错误对象的结构是这样的:

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(' '))
};

^ 这 return 是错误的对象值连接,但没有对象的原始键。

知道如何做到这一点吗? :)

我认为单行是不可能的。你可以这样实现:

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

一个减速器应该适用于一个衬管。

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