Javascript 在react中将函数作为道具传递,无法读取属性'_手孔';未定义的
我尝试在react中实现一个类表。一个表有多行,每行都有一个按钮。首先,我尝试传递一个函数handleEvent 现在,我总是以以下方式结束: TypeError:无法读取未定义的属性“\u-doDeleteItem” 存在某种绑定错误,但我无法解决 干杯Javascript 在react中将函数作为道具传递,无法读取属性'_手孔';未定义的,javascript,reactjs,create-react-app,Javascript,Reactjs,Create React App,我尝试在react中实现一个类表。一个表有多行,每行都有一个按钮。首先,我尝试传递一个函数handleEvent 现在,我总是以以下方式结束: TypeError:无法读取未定义的属性“\u-doDeleteItem” 存在某种绑定错误,但我无法解决 干杯 class Table extends Component { constructor(props,context) { super(props,context); this.state = { k : 3 };
class Table extends Component {
constructor(props,context) {
super(props,context);
this.state = { k : 3 };
this._handleEvent = this._handleEvent.bind(this);
}
_handleEvent (e) {
console.log('delete')
}
render() {
var rows = [];
var lastCategory = null;
this.props.results.slice(-this.state.k).forEach(function(r) {
rows.push( <Rows result = {r} deleteItem = {this._handleEvent} />);
});
return(
<Panel>
<ListGroup fill>
{rows}
</ListGroup>
</Panel>
);
}
}
export default Table;
class Rows extends Component{
render() {
return(
<ListGroupItem>
<b>Text:</b><Button onClick = {this.props.deleteItem} type="False"><b>True</b></Button><br/>
</ListGroupItem>
);
}
}
类表扩展组件{
构造函数(道具、上下文){
超级(道具、背景);
this.state={k:3};
this.\u handleEvent=this.\u handleEvent.bind(this);
}
_扶手通风口(e){
console.log('delete')
}
render(){
var行=[];
var lastCategory=null;
this.props.results.slice(-this.state.k).forEach(函数(r){
rows.push();
});
返回(
{rows}
);
}
}
导出默认表;
类行扩展组件{
render(){
返回(
文本:True
);
}
}
此
不是内部的组件实例。使用arrow函数、绑定匿名函数或将此
作为第二个参数传递给forEach
:
this.props.results.slice(-this.state.k).forEach(function(r) {
rows.push( <Rows result = {r} deleteItem = {this._handleEvent} />);
}.bind(this));
this.props.results.slice(-this.state.k).forEach(函数(r){
rows.push();
}.约束(这个);
或
this.props.results.slice(-this.state.k).forEach(函数(r){
rows.push();
},这个);
展示你的“尝试”方法。你有行项目的代码吗?deleteTrue
非常奇怪每当JavaScript中出现“cannotdox of undefined”时,100%的情况下这意味着您试图访问一个属性或对一个尚未定义的变量执行某些操作,因此出现了未定义的错误。
this.props.results.slice(-this.state.k).forEach(function(r) {
rows.push( <Rows result = {r} deleteItem = {this._handleEvent} />);
}, this);