比较state和prop值 - 错误:无法读取undefined的属性'state'

时间:2017-06-25 06:49:09

标签: javascript reactjs state ag-grid prop

我有两个数组(一个状态,一个是prop),两个都有键:值对

如果我使用:

this.props.test.col.forEach(function(element){
    console.log(element.header);
}

我将看到我的prop

中key:value对数组中所有标头值的列表

如果我使用:

console.log(this.state.gridOptions.api.blahhhh.hasOwnProperty('example header');

如果我的状态中其中一个键:值对的键是'example header',它将返回true

两者都按预期工作。我想比较state和prop键:值对并在每次我的状态的key:value对中的键与我的prop的key:value对的值匹配时执行操作。

那么为什么以下不起作用?我所做的只是结合了两个

this.props.test.col.forEach(function(element){
    if (this.state.gridOptions.api.blahhhh.hasOwnProperty(element.header)){
    console.log('hi');
    }
}

我收到错误:

Uncaught TypeError: Cannot read property 'state' of undefined 

在上面的示例代码中,如果值和prop和prop的键之间存在匹配,则将'hi'打印到控制台

1 个答案:

答案 0 :(得分:1)

使用'this'。在forEach-callback中将有另一个上下文。

让我们试试:

let self=this;
this.props.test.col.forEach(function(element){
    if (self.state.gridOptions.api.blahhhh.hasOwnProperty(element.header)){
    console.log('hi');
    }
}