Skip to content

Commit 18217cf

Browse files
andrwsalcdocharpeni
authored andcommitted
Refactor: PanResponder example to inside the constructor. Avoid componentWillMount(). (facebook#373)
1 parent 902ed49 commit 18217cf

File tree

1 file changed

+45
-42
lines changed

1 file changed

+45
-42
lines changed

docs/panresponder.md

Lines changed: 45 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -42,48 +42,51 @@ A `gestureState` object has the following:
4242
### Basic Usage
4343

4444
```
45-
componentWillMount: function() {
46-
this._panResponder = PanResponder.create({
47-
// Ask to be the responder:
48-
onStartShouldSetPanResponder: (evt, gestureState) => true,
49-
onStartShouldSetPanResponderCapture: (evt, gestureState) => true,
50-
onMoveShouldSetPanResponder: (evt, gestureState) => true,
51-
onMoveShouldSetPanResponderCapture: (evt, gestureState) => true,
52-
53-
onPanResponderGrant: (evt, gestureState) => {
54-
// The gesture has started. Show visual feedback so the user knows
55-
// what is happening!
56-
57-
// gestureState.d{x,y} will be set to zero now
58-
},
59-
onPanResponderMove: (evt, gestureState) => {
60-
// The most recent move distance is gestureState.move{X,Y}
61-
62-
// The accumulated gesture distance since becoming responder is
63-
// gestureState.d{x,y}
64-
},
65-
onPanResponderTerminationRequest: (evt, gestureState) => true,
66-
onPanResponderRelease: (evt, gestureState) => {
67-
// The user has released all touches while this view is the
68-
// responder. This typically means a gesture has succeeded
69-
},
70-
onPanResponderTerminate: (evt, gestureState) => {
71-
// Another component has become the responder, so this gesture
72-
// should be cancelled
73-
},
74-
onShouldBlockNativeResponder: (evt, gestureState) => {
75-
// Returns whether this component should block native components from becoming the JS
76-
// responder. Returns true by default. Is currently only supported on android.
77-
return true;
78-
},
79-
});
80-
},
81-
82-
render: function() {
83-
return (
84-
<View {...this._panResponder.panHandlers} />
85-
);
86-
},
45+
class ExampleComponent extends Component {
46+
constructor(props) {
47+
super(props)
48+
this._panResponder = PanResponder.create({
49+
// Ask to be the responder:
50+
onStartShouldSetPanResponder: (evt, gestureState) => true,
51+
onStartShouldSetPanResponderCapture: (evt, gestureState) => true,
52+
onMoveShouldSetPanResponder: (evt, gestureState) => true,
53+
onMoveShouldSetPanResponderCapture: (evt, gestureState) => true,
54+
55+
onPanResponderGrant: (evt, gestureState) => {
56+
// The gesture has started. Show visual feedback so the user knows
57+
// what is happening!
58+
59+
// gestureState.d{x,y} will be set to zero now
60+
},
61+
onPanResponderMove: (evt, gestureState) => {
62+
// The most recent move distance is gestureState.move{X,Y}
63+
64+
// The accumulated gesture distance since becoming responder is
65+
// gestureState.d{x,y}
66+
},
67+
onPanResponderTerminationRequest: (evt, gestureState) => true,
68+
onPanResponderRelease: (evt, gestureState) => {
69+
// The user has released all touches while this view is the
70+
// responder. This typically means a gesture has succeeded
71+
},
72+
onPanResponderTerminate: (evt, gestureState) => {
73+
// Another component has become the responder, so this gesture
74+
// should be cancelled
75+
},
76+
onShouldBlockNativeResponder: (evt, gestureState) => {
77+
// Returns whether this component should block native components from becoming the JS
78+
// responder. Returns true by default. Is currently only supported on android.
79+
return true;
80+
},
81+
});
82+
}
83+
84+
render() {
85+
return (
86+
<View {...this._panResponder.panHandlers} />
87+
);
88+
}
89+
}
8790
```
8891

8992
### Working Example

0 commit comments

Comments
 (0)