私はこのような外部ライブラリアンからjavascriptのイベントを持っている:私はそれをクリックするとステートチェンジ後にonClickイベントを登録するには?
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}}
/>
これは、デスクトップ上で動作しますが、モービル、onClickの上フルスクリーンの画像もまたトリガされ、画像がちょうどちらつき、再び消滅します。
私が遅れ追加する場合、それは動作します:
this.flky.on('staticClick', (e) => {
setTimeout(() => { this.setState({mobileZoom: true}) }, 100)
)
を私はクリックイベントが異なるデバイスに続くどのくらいは考えているので、これは持続可能な解決策と悪い習慣ではありません。より良い方法がありますか?
あなたは 'this.setState({mobileZoom:true}'を設定した後に 'staticClick'イベントを発生させたいとしますか? –
いいえ、staticClickを発生させると、img onClickイベントも発生します。 – Himmators
e.stopPropagation()メソッドを試しましたか? ()=> {/ * body * /} – cvetanov