我是React js的新手我很困惑如何通过onclick事件从子组件发送数据到父组件。
父组件
...
onTurn(id){
console.log(id)//undefined
}
renderCardsList(){
const {cardsList} = this.props
return cardsList.get('cards').map(({id,front_image}) => {
return <Card
image={front_image}
onTurn={this.onTurn}
/>
})
}
...
子组件
const Card = (props) => {
return(
<div className="singleCard">
<div className="imageDiv">
<img src={props.image} alt="work" />
</div>
<div className="bottombar">
<span onClick={e => props.onTurn(props.id)} className="glyphicon glyphicon-refresh" />
<span className="glyphicon glyphicon-pencil" />
<span className="glyphicon glyphicon-pushpin" />
</div>
</div>
)
};
答案 0 :(得分:3)
您的onClick
期望id
上的props
媒体资源:
onClick={e => props.onTurn(props.id)}
但是你没有提供一个:
return <Card
image={front_image}
onTurn={this.onTurn}
/>
很自然地,卡props.id
中的render
是undefined
。
如果您希望卡片id
上有props
,则需要指定一张,例如:
return <Card
image={front_image}
onTurn={this.onTurn}
id={/*something*/}
/>