我有把道具传给子元素的问题。我有一个父母让孩子(四次)有按钮。我想执行“console.log(id);”每次我点击按钮。但即使我不点击按钮,onClick也会被执行。所以在控制台中,我可以看到它一次打印出来。这是我的代码。 tagsBrief_array是一个json对象数组。把道具传给小孩的麻烦
父组件
export default class TagsBrief extends Component{
handleClick(id){
console.log(id);
}
render() {
var populate = tagsBrief_array.map((value)=> {
return(
<TagBriefItem id={value.id} onclick={this.handleClick} description={value.tag_name} percent={value.tag_percent}/>)
});
return (
<MuiThemeProvider>
<div className="tagsBrief">
{populate}
</div>
</MuiThemeProvider>
);
}
}
子组件
export default class TagsBriefItem extends Component {
render() {
return (
<MuiThemeProvider>
<button onClick={this.props.onclick(this.props.id)} style={{backgroundColor: "#293C8E"}} className="tagsBriefItem">
<h2 style={styles.headline}>{this.props.description}</h2>
<h3 style={styles.headline}>{this.props.percent}</h3>
</button>
</MuiThemeProvider>
);
}
}