ご閲覧頂きましてありがとうございます。
Reactで onClick()
をした際に、連続クリックを防止したいです。
下記のStackOverflowのように、 disabled
をstateで操作してみたのですが
ボタンを2回押さないと対応してくれなかったり、結局連続クリックを防止もできていませんでした。
https://stackoverflow.com/questions/35315872/reactjs-prevent-multiple-times-button-press
react posed のアニメーションで遷移を透明化で代用しています。
ソースコード
JavaScript
1 2// react posed でスクリーン遷移アニメーション 3const Screen = posed.div({ 4 hidden: { 5 opacity: 0, 6 }, 7 visible: { 8 opacity: 1, 9 } 10}); 11 12class App extends Component { 13 constructor(props) { 14 super(props); 15 this.state = { 16 screen: { 17 first: true, 18 second: false 19 }, 20 } 21 22 // 戻る処理 23 _firstBack = event => { 24 const screen = this.state.screen; 25 screen.first = truw; 26 screen.second = false; 27 this.setState({ 28 screen 29 }); 30 }; 31 32 return ( 33 <div className="App"> 34 <input 35 style={{ display: "none" }} 36 value={this.state.recipe_id} 37 id="recipe_id" 38 /> 39 <Screen 40 pose={this.state.screen.first ? "visible" : "hidden"} 41 > 42 画面1 43 </Screen> 44 <Screen 45 pose={this.state.screen.second ? "visible" : "hidden"} 46 > 47 画面2 48 49 <div onClick={this._firstBack}> 50 <span>もどる</span> 51 </div> 52 </Screen> 53
もどるを連続クリックすると、現状画面が重なってしまいます。
こちらの現象を防ぐ方法をご教示いただければと思います。
あなたの回答
tips
プレビュー