Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React onClick事件产生:“一次点击”;未捕获的TypeError:无法读取未定义的属性";,尽管有约束力_Javascript_Reactjs_Bind - Fatal编程技术网

Javascript React onClick事件产生:“一次点击”;未捕获的TypeError:无法读取未定义的属性";,尽管有约束力

Javascript React onClick事件产生:“一次点击”;未捕获的TypeError:无法读取未定义的属性";,尽管有约束力,javascript,reactjs,bind,Javascript,Reactjs,Bind,我正在编写一个React脚本,该脚本将从先前定义的数组中呈现一组元素 ... render: ... var behaviourComponents = this.props.myObjectArray.map(function(element) { return <a className="crumbFile" onClick={this._myFunction.bind(this,element.value1)}>{element.

我正在编写一个React脚本,该脚本将从先前定义的数组中呈现一组
元素

...
render:
...
    var behaviourComponents = this.props.myObjectArray.map(function(element) {
                    return <a className="crumbFile" onClick={this._myFunction.bind(this,element.value1)}>{element.value2}</a>;
                });
    return (
...
<div>{behaviourComponents}</div>
...)
。。。
提供:
...
var behaviorComponents=this.props.myObjectArray.map(函数(元素){
返回{element.value2};
});
返回(
...
{组件}
...)
当没有onClick的函数调用时,这可以正常工作。但是,当出现错误时,我得到错误:“uncaughttypeerror:无法读取未定义的属性'\u myFunction'


这是非常奇怪的,因为我有一个组件,它前面有一个onClick函数调用,可以正常工作(
Load
),这让我觉得这是一个范围问题,因为map()函数。但是,我使用了.bind(),所以我不太确定这里出了什么问题。

这是因为传递给
map()
的函数中的上下文没有引用React组件类。默认情况下,上下文是全局窗口对象

有几种方法可以解决此问题:

1) 将此
的正确上下文绑定到传递给
map()
的函数

2) 将正确的上下文作为第二个参数传递给
map()

3) 使用ES6 arrow函数,它将为您绑定正确的上下文

this.props.myObjectArray.map(element => {
    ...
});
this.props.myObjectArray.map(function(element) {
    ...
}, this);
this.props.myObjectArray.map(element => {
    ...
});