在 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
}, {})
};
我无法按照我想要的结构让我的 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
}, {})
};