Reactjs 如何在状态更改后注册onClick事件?

Reactjs 如何在状态更改后注册onClick事件?,reactjs,Reactjs,我有一个来自en外部库的javascript事件,如下所示: this.flky.on('staticClick', (e) => { this.setState({mobileZoom: true}) 单击它时,图像会展开: <img onClick={this.state.zoom && () => {this.setState({mobileZoom: false}}} style={...this.state.mobileZoom &&am

我有一个来自en外部库的javascript事件,如下所示:

this.flky.on('staticClick', (e) => { this.setState({mobileZoom: true})
单击它时,图像会展开:

 <img onClick={this.state.zoom && () => {this.setState({mobileZoom: false}}}
 style={...this.state.mobileZoom && {position: 'absolute', top: 0, left: 0, width: 'auto', zIndex: 1070}}
 />

但是我不知道点击事件在不同的设备上持续多长时间,所以这不是一个可持续的解决方案,也是一个糟糕的做法。有更好的方法吗?

看起来您在单击后的
中有打字错误:

 <img onClick={this.state.mobileZoom && () => {this.setState({mobileZoom: false}}}
 style={...this.state.mobileZoom && {position: 'absolute', top: 0, left: 0, width: 'auto', zIndex: 1070}}
 />
{this.setState({mobileZoom:false}}}
style={…this.state.mobileZoom&&{位置:'absolute',顶部:0,左侧:0,宽度:'auto',zIndex:1070}
/>
您可以使用停止冒泡
事件
进一步

this.flky.on('staticClick', (e) => { 
    if (event.stopPropagation){ //checking browser support
       event.stopPropagation();
    }else{
      window.event.cancelBubble = true;
    }
    this.setState({mobileZoom: true});
)
例如

内部函数(e){
e、 停止传播();
警报(“您在内部单击了”);
}
外部功能(e){
警报(“您单击了ouside”);
}

外面
在…内

你的意思是,你想在设置
this.setState({mobileZoom:true}
)后触发
staticClick
事件吗?不,当我触发staticClick时,img onClick事件也会被触发。你尝试过e.stopPropagation()方法吗?顺便说一句,如果你没有使用“e”作为参数,你可以在没有它的情况下定义函数()=>{/*body*/}您可以共享
渲染
方法的完整代码吗?从共享代码看,
flky
在图像层次结构中的位置并不明显。
this.flky.on('staticClick', (e) => { 
    if (event.stopPropagation){ //checking browser support
       event.stopPropagation();
    }else{
      window.event.cancelBubble = true;
    }
    this.setState({mobileZoom: true});
)