如何修复错误“无法读取未定义的属性‘setState’”
2018-11-06
189
更新 1:
我更新了 fiddle,但仍然遇到错误 _this.state.concat 不是函数 ,您能帮我吗 https://codesandbox.io/s/40mmrl9059
当我单击卡片中的收藏夹图标时,卡片应显示在外部的收藏夹选项卡中。为此,我试图将值从子级传递给父级,因此我在 handleClick 方法中使用了 setState。
但现在我收到错误
Cannot read property 'setState' of undefined
您能告诉我如何修复它吗?
(下面提供我的代码片段和沙盒。 - 卡片代码在 actual-card.js 中,标签代码在 tab-demo.js 中)
https://codesandbox.io/s/40mmrl9059
state = {
value: 0,
top: false,
left: false,
bottom: false,
right: false,
favorites: []
};
// props
handleClick(prop) {
console.log("actualCard--->");
//console.log("event.currentTarget--->", currentTarget.relatedTarget);
this.setState({ favorites: this.state.concat(prop) });
}
<IconButton
// onClick={this.handleClickOpen}
onClick={this.handleClick}
aria-label="Add to favorites"
>
<Tabs
value={value}
onChange={this.handleChange}
scrollable
scrollButtons="on"
indicatorColor="primary"
textColor="primary"
>
<Tab label="Search" icon={<PhoneIcon />} />
<Tab
favorites={favorites}
label="Favorites"
icon={<FavoriteIcon />}
/>
1个回答
您需要将
this
绑定到您的事件处理程序
尝试使用箭头函数,如
handleClick = (prop) => {//code}
Evan
2018-11-06