我有一个将错误设置为对象的类
其中一种方法是通过记录方法实现的
record(errors) {
this.errors = errors;
}
这将接受一个对象并设置值。通常我会得到这样的错误
但是我试图将单个错误放入对象中
this.errors.record(this.errors.errors.username = {username: "this is my custom error"}
);
但是结果是整个对象被覆盖
如何更改此对象中的一个值?
答案 0 :(得分:1)
如果您的目标是将要传递的对象与已经存在的对象合并,则可以使用Object.assign
来做到这一点:
record(errors) {
Object.assign(this.errors, errors);
}
这会将errors
的所有“自有”属性复制到预先存在的this.errors
对象中。
如果this.errors
可能不存在,则可以添加保护和分配:
record(errors) {
this.errors = Object.assign(this.errors || {}, errors);
}
Object.assign
返回其第一个参数。当this.errors
不存在时(会导致任何伪造的值),将使用并返回新对象{}
,然后将其分配给this.errors
。但是,当this.errors
存在时(得出真实值),将使用该值并且该分配为无操作。
Object.assign
是最近才添加的,但是对于较旧的环境来说,对于polyfill来说是微不足道的。