我有两个数组(一个状态,一个是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'打印到控制台
答案 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');
}
}