Angular 在子组件中将父组件值作为参数传递
我正在通过Angular 在子组件中将父组件值作为参数传递,angular,decorator,Angular,Decorator,我正在通过@Input装饰器将一个字符串name从父组件发送到子组件。然后,该字符串name作为参数输入子组件中的函数 因此,每次触发父组件中的事件(例如单击)时,都会导致该name值发生更改,进而影响子组件中的函数(因为它将name作为参数)。这是my child组件的一个片段: @Input() name: string; ngOnChanges() { this.childFunction(this.name); } 我现在面临的问题是,子视图保留了前一个函数调用的值。当我希望它删
@Input
装饰器将一个字符串name
从父组件发送到子组件。然后,该字符串name
作为参数输入子组件中的函数
因此,每次触发父组件中的事件(例如单击)时,都会导致该name
值发生更改,进而影响子组件中的函数(因为它将name
作为参数)。这是my child组件的一个片段:
@Input() name: string;
ngOnChanges() {
this.childFunction(this.name);
}
我现在面临的问题是,子视图保留了前一个函数调用的值。当我希望它删除旧的输出并用它替换新的输出时,每次在父级中单击后,它都会添加新的输出
更新:我已经找到了一个解决方案,但我不确定它是否正确。基本上,由于子函数返回一个对象数组,我只是在每次函数调用开始时清空数组。这似乎解决了这个问题。ngOnInit对一个组件只运行一次。改用ngOnChanges。请参见此处的文档: Angular在检测到更改时调用其ngOnChanges()方法 组件(或指令)的输入属性。这个例子 监视OnChanges钩子
ngOnInit对于一个组件只运行一次。改用ngOnChanges。请参见此处的文档: Angular在检测到更改时调用其ngOnChanges()方法 组件(或指令)的输入属性。这个例子 监视OnChanges钩子
我似乎又碰到了一个问题。我已经更新了解释它的原始帖子。如果可以的话,请看一看。接下来的问题应该是另一个问题。我似乎又碰到了一个问题。我已经更新了解释它的原始帖子。如果可以的话,请看一看。接下来的问题应该是另一个问题
ngOnChanges(changes: SimpleChanges) {
for (let propName in changes) {
let chng = changes[propName];
let cur = JSON.stringify(chng.currentValue);
let prev = JSON.stringify(chng.previousValue);
this.changeLog.push(`${propName}: currentValue = ${cur}, previousValue = ${prev}`);
}
}