ngOnChanges如何处理simpleChanges对象

时间:2018-03-11 07:39:57

标签: angular angular5

我对角度5非常新。我正在从官方网站上学习组件交互

ngOnChanges(changes: {[propKey: string]: SimpleChange}) {}

在生命周期中挂钩

ngOnChanges(changes: SimpleChanges) {}

据我所知,SimpleChanges是ngOnChanges作为参数获取的对象,我们可以使用它访问前一个和当前值。但我不明白以下是如何工作的:

ngOnChanges(changes: {[propKey: string]: SimpleChange}) {}

我在任何地方都找不到任何好的解释

2 个答案:

答案 0 :(得分:2)

{[propKey: string]: SimpleChange}

表示:具有string类型的键的对象,每个键都与SimpleChange类型的值相关联。

如果你的组件有3个输入a,b和c,输入a和c改变了,那么Angular将使用如下参数调用ngOnChanges():

{
  a: {
    previousValue: ...,
    currentValue: ...,
    firstChange: false
  }
  c: {
    previousValue: ...,
    currentValue: ...,
    firstChange: false
  }
}

答案 1 :(得分:1)

这只是ngOnChanges函数中参数的类型糖。

{[propKey: string]: SimpleChange

上面的行意味着参数是一种hashmap,其中key是一个字符串,值是SimpleChange函数的一个实例。

“propKey”只是一个名称,而不是你也可以输入“aaa”或“myPropKey”,并且仍然可以使用。

请查看https://www.sitepen.com/blog/2013/12/31/definitive-guide-to-typescript/ abd搜索hashmap