Javascript 通过单击从一个组件渲染到另一个组件
我有一个实际上是表行的组件:Javascript 通过单击从一个组件渲染到另一个组件,javascript,reactjs,Javascript,Reactjs,我有一个实际上是表行的组件: class Row extends PureComponent { static propTypes = { user: PropTypes.shape({ id: PropTypes.number.isRequired, firstName: PropTypes.string, lastName: PropTypes.string, email: PropTypes.string, phone
class Row extends PureComponent {
static propTypes = {
user: PropTypes.shape({
id: PropTypes.number.isRequired,
firstName: PropTypes.string,
lastName: PropTypes.string,
email: PropTypes.string,
phone: PropTypes.string
}).isRequired
};
onSelect = event => {
console.log(event);
};
render() {
const { user } = this.props;
return (
<div className="row" onClick={event => this.onSelect(user)}>
<div>{user.id}</div>
<div>{user.firstName}</div>
<div>{user.lastName}</div>
<div>{user.email}</div>
<div>{user.phone}</div>
</div>
);
}
}
类行扩展了PureComponent{
静态类型={
用户:PropTypes.shape({
id:PropTypes.number.isRequired,
名字:PropTypes.string,
lastName:PropTypes.string,
电子邮件:PropTypes.string,
电话:PropTypes.string
}).需要
};
onSelect=event=>{
console.log(事件);
};
render(){
const{user}=this.props;
返回(
this.onSelect(用户)}>
{user.id}
{user.firstName}
{user.lastName}
{user.email}
{user.phone}
);
}
}
如何在另一个组件(生成表)中传递onSelect函数中的事件?欢迎使用StackOverflow Bogdan!您可以将父组件中的函数作为道具传递到
行
,然后调用它。谢谢Thole!很遗憾我自己没有考虑过,因为我以前已经用过这个方法了。这就是它现在的样子:this.props.onSelect(user)}>这看起来是一个不错的解决方案。@BogdanNechaenko,虽然你的解决方案很好,但在渲染中使用内联箭头函数不是一个好主意,检查@Shubham Khatri,它说我可以使用PureComponent来解决这个问题。这就是我在上面代码中使用的