我做了一个查询组件来查询数据库中的一个人,它有一个按钮可以编辑那个特定的人,当单击它时,它会切换到另一个组件来编辑那个人,所以我添加了一个按钮来再次返回到查询组件,并在查询组件上显示了更新的数据,但是在返回时,查询组件没有出现。
我试图使用服务传递数据,这是代码的一部分:
export class PersonaGetComponent implements OnInit {
personas: Persona[];
individuo: {cedula: string, direccion: string; nombre: string; _id: string};
valor: any;
constructor(private ps: PersonasService, private vd: VolverDataService) { }
ngOnInit() {
this.ps
.getPersonas()
.subscribe((data: Persona[]) => {
this.personas = data;
});
if (this.vd.volver === true) {
console.log(this.individuo);
this.valor = this.vd.cedula;
this.individuo.cedula = this.vd.cedula; //this part shows an error, it says that individuo is undefined so I cannot assign a value
this.individuo.direccion = this.vd.direccion;
this.individuo.nombre = this.vd.nombre;
}
}
这是错误:
无法设置未定义的属性“ cedula”
单个对象未定义,我无法为其分配任何值。
答案 0 :(得分:2)
您仅定义了Type
中的individuo
,但从未为其分配值。这就是为什么控制台向您大喊变量为undefined
的原因。改为这样做:
// Change:
individuo: {cedula: string, direccion: string, nombre: string, _id: string};
// With this:
individuo = {cedula: '', direccion: '', nombre: '', _id: ''};
答案 1 :(得分:1)
您必须为individuo
提供一个初始值,因为它是undefined
。
解决方案:
individuo: {cedula: string; direccion: string; nombre: string; _id: string} = {
cedula: '',
direccion: '',
nombre: '',
_id: ''
};