【发布时间】:2017-01-06 16:41:09
【问题描述】:
我有这些父子组件,我想通过点击功能来选择子组件中的一个项目。然而,似乎子组件中的函数会自动调用,而不是等到用户单击该元素。为了更清楚,这里是我的父子组件
export class ParentView extends Component {
state = {
selectedItem: {}
}
handleClick = (item) => {
alert('you click me');
this.setState({selectedItem: item});
}
render() {
let item = { name: 'Item-1' };
return (
<div>
<ChildItem item={item} handleClick={this.handleClick} />
</div>
);
}
}
export class ChildItem extends Component {
render() {
const {item, handleClick} = this.props;
return (
<div>
<a onClick={handleClick(item)} />
</div>
);
}
}
这些是我的组件使用箭头函数将handleClick 传递给子组件,但警报总是在第一次渲染时被调用,而不会被用户触发。有什么建议吗?
【问题讨论】:
标签: reactjs ecmascript-6 ecmascript-2016