React this.onChange() 没有调用内部映射函数
React this.onChange() is not calling inside map function
当我在 map 方法中调用 onChange 函数时出现以下错误
Uncaught TypeError: Cannot read property 'onCheckChange' of undefined at onChange
我的代码如下
getPlanCheckbox(jsonParseservicelist, bbuserid) {
const returnresult = jsonParseservicelist.map(function (single) {
return (
<div className="">
<label className="" >
<input type="checkbox" onChange={() => this.onCheckChange(bbuserid, single.plantype)} defaultChecked={single.isActive == 1 ? "checked" : ""} />
<span className="" />
</label>
</div>);
});
return returnresult;
}
onCheckChange = (e, bbuid, plantype) => {
console.log(bbuid, plantype);
}
我试试这个,我找到了 2 个解决方案
1st 只是将您的函数替换为以下
getPlanCheckbox(jsonParseservicelist, bbuserid) {
var self = this;
const returnresult = jsonParseservicelist.map(function (single) {
return (
<div className="">
<label className="" >
<input type="checkbox" onChange={() => self.onCheckChange(bbuserid, single.plantype)} defaultChecked={single.isActive == 1 ? "checked" : ""} />
<span className="" />
</label>
</div>);
});
return returnresult;
}
只需将 this
带入另一个 variable
和用户该变量名即可调用函数
让我们说
var self = this;
现在我使用 self 来调用这样的函数
self.onCheckChange();
第二个是使用地图作为箭头函数
data.map((single) => {
})
将 map 函数定义为箭头,否则,this
将不是全局上下文。同样适用于 getPlanCheckbox
函数,如果您没有在构造函数中绑定 this
:
getPlanCheckbox = (jsonParseservicelist, bbuserid) => {
const returnresult = jsonParseservicelist.map((single) => {
return (
<div className="">
<label className="" >
<input type="checkbox" onChange={() => this.onCheckChange(bbuserid, single.plantype)} defaultChecked={single.isActive == 1 ? "checked" : ""} />
<span className="" />
</label>
</div>);
});
return returnresult;
}
当我在 map 方法中调用 onChange 函数时出现以下错误
Uncaught TypeError: Cannot read property 'onCheckChange' of undefined at onChange
我的代码如下
getPlanCheckbox(jsonParseservicelist, bbuserid) {
const returnresult = jsonParseservicelist.map(function (single) {
return (
<div className="">
<label className="" >
<input type="checkbox" onChange={() => this.onCheckChange(bbuserid, single.plantype)} defaultChecked={single.isActive == 1 ? "checked" : ""} />
<span className="" />
</label>
</div>);
});
return returnresult;
}
onCheckChange = (e, bbuid, plantype) => {
console.log(bbuid, plantype);
}
我试试这个,我找到了 2 个解决方案
1st 只是将您的函数替换为以下
getPlanCheckbox(jsonParseservicelist, bbuserid) {
var self = this;
const returnresult = jsonParseservicelist.map(function (single) {
return (
<div className="">
<label className="" >
<input type="checkbox" onChange={() => self.onCheckChange(bbuserid, single.plantype)} defaultChecked={single.isActive == 1 ? "checked" : ""} />
<span className="" />
</label>
</div>);
});
return returnresult;
}
只需将 this
带入另一个 variable
和用户该变量名即可调用函数
让我们说
var self = this;
现在我使用 self 来调用这样的函数
self.onCheckChange();
第二个是使用地图作为箭头函数
data.map((single) => {
})
将 map 函数定义为箭头,否则,this
将不是全局上下文。同样适用于 getPlanCheckbox
函数,如果您没有在构造函数中绑定 this
:
getPlanCheckbox = (jsonParseservicelist, bbuserid) => {
const returnresult = jsonParseservicelist.map((single) => {
return (
<div className="">
<label className="" >
<input type="checkbox" onChange={() => this.onCheckChange(bbuserid, single.plantype)} defaultChecked={single.isActive == 1 ? "checked" : ""} />
<span className="" />
</label>
</div>);
});
return returnresult;
}