Использование join () для массива, вложенного в записи объектов из vuex getter - PullRequest
0 голосов
/ 12 февраля 2019

Я не могу заставить свой vuex getter возвращать ошибки так, как я хочу, чтобы он был структурирован.

Структура моего объекта ошибок выглядит следующим образом:

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

Структура, которую я хочу, чтобыbe:

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 голосов
/ 12 февраля 2019

Редуктор должен работать на один вкладыш.

const getters = {
  errors: state => Object.keys(state.errors).reduce((acc, key) => {
    acc[key] = state.errors[key].join(' ')
    return acc
  }, {})
};
0 голосов
/ 12 февраля 2019

Я не думаю, что это возможно с одной строкой.Вы можете достичь этого следующим образом:

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