1
A
答えて
2
https://snack.expo.io/@patwoz/withpreventdoubleclick
使用このHOCを触れるを拡張するためにすばやく2回できタップしてはなりませんTouchableHighlight、Buttonなどのコンポーネント...
import debounce from 'lodash.debounce'; // 4.0.8
const withPreventDoubleClick = (WrappedComponent) => {
class PreventDoubleClick extends React.PureComponent {
debouncedOnPress =() => {
this.props.onPress && this.props.onPress();
}
onPress = debounce(this.debouncedOnPress, 300, { leading: true, trailing: false });
render() {
return <WrappedComponent {...this.props} onPress={this.onPress} />;
}
}
PreventDoubleClick.displayName = `withPreventDoubleClick(${WrappedComponent.displayName ||WrappedComponent.name})`
return PreventDoubleClick;
}
使用
import { Button } from 'react-native';
import withPreventDoubleClick from './withPreventDoubleClick';
const ButtonEx = withPreventDoubleClick(Button);
<ButtonEx onPress={this.onButtonClick} title="Click here" />
2
使用プロパティButton.disabled
import React, { Component } from 'react';
import { AppRegistry, StyleSheet, View, Button } from 'react-native';
export default class App extends Component {
state={
disabled:false,
}
pressButton() {
this.setState({
disabled: true,
});
// enable after 5 second
setTimeout(()=>{
this.setState({
disabled: false,
});
}, 5000)
}
render() {
return (
<Button
onPress={() => this.pressButton()}
title="Learn More"
color="#841584"
disabled={this.state.disabled}
accessibilityLabel="Learn more about this purple button"
/>
);
}
}
// skip this line if using Create React Native App
AppRegistry.registerComponent('AwesomeProject',() => App);
関連する問題
- 1. React-Nativeでのシステムフォントのオーバーライドを防止する
- 2. WebViewのリロードを防止する方法[Android React Native]
- 3. タブバーコントローラ:ログインコントローラを表示+停止タブボタンをダブルタップ
- 4. フォーム送信(React、Express、Multer)によるファイルアップロードのリダイレクトの防止
- 5. Reactネイティブのテキストオーバーフローフレックス
- 6. ReactネイティブのReact Navigationによるルーティング
- 7. React - 子から親へのイベントトリガーの防止
- 8. RCTBridge in Reactネイティブ
- 9. ReactネイティブDRY Javascript
- 10. ReactネイティブIosPushNotificationエラー
- 11. ReactネイティブInit Hanging
- 12. ReactネイティブAndroid:app:compileDebugJavaエラー
- 13. DrawerLayoutAndroid in reactネイティブ
- 14. gRPC on Reactネイティブ
- 15. Reactネイティブ、MobX、ライフサイクル
- 16. SplashScreen in reactネイティブ
- 17. ReactネイティブListView
- 18. MultiSelect in reactネイティブ
- 19. Clear ReactネイティブTextInput
- 20. Reactネイティブ<0.40.0
- 21. Reactネイティブ用のOnTouchListener
- 22. React-Router v4 - 機能付き遷移の防止
- 23. Reactネイティブの子コンポーネントを設定する
- 24. REACT - 小数点以下2桁目以降の入力を防止する
- 25. Fullpage.js - スクロールを防止する
- 26. extrenalhitキャッシングを防止する
- 27. URLインジェクションを防止する
- 28. IPスプーフィングを防止する
- 29. OnErrorNotImplementedExceptionを防止する
- 30. HTML5 - フルスクリーンモードを防止する
あなたはクリックイベントのために持っているものをあなたのコードを追加してください。 – Observer
これにはいくつかの良い提案があります。[this stackoverflow question](https://stackoverflow.com/questions/36187081/react-native-prevent-double-tap) – kwishnu
[React Native Prevent Double Tap]の可能な複製https://stackoverflow.com/questions/36187081/react-native-prevent-double-tap) –