如何将附加事件添加到jsx的基于条件的元素?下面的例子没有这样做,它只是通过一个标志到onClick函数,并没有真正附加事件。反应添加事件监听器根据条件
const { hasSomething, name } = this.props
render(){
return(
{hasSomething && this.fireSomething()}}>{name}/div>
)
}
我可以复制2 ,检查是否存在hasSomething
然后将其连接到一个元素,但是这是一个糟糕的重复,我为{名称}声明两次。
3 回答
还记得绑定功能this
,如果你需要引用道具/状态。我倾向于做建筑即 this.fireSomething = this.fireSomething.bind(this)
怎么样:
render(){
return(
this.fireSomething}>{name}/div>
)
}
如果hasSomething
连接监听器,否则onClick
将收到不确定就像你不会通过任何东西。
如果上面没有你正在寻找你也可以做这样的事情的东西:
render(){
const props = {
//... some props
}
if(hasSomething) {
props.onClick = this.fireSomething;
}
return(
{name}/div>
)
}
您创建一个认为应该传递给股利和以后使用蔓延运营商的每一个道具对象通过他们。
这家伙很懒,还没有设置简介