@@ -41,6 +41,13 @@ class DatePickerItem extends Component {
41
41
this . _iniDates ( this . props . value ) ;
42
42
}
43
43
44
+ componentDidMount ( ) {
45
+ const viewport = this . viewport ;
46
+ viewport . addEventListener ( 'touchstart' , this . handleContentTouch , false ) ;
47
+ viewport . addEventListener ( 'touchmove' , this . handleContentTouch , false ) ;
48
+ viewport . addEventListener ( 'touchend' , this . handleContentTouch , false ) ;
49
+ viewport . addEventListener ( 'mousedown' , this . handleContentMouseDown , false ) ;
50
+ }
44
51
45
52
componentWillReceiveProps ( nextProps ) {
46
53
if ( nextProps . value . getTime ( ) === this . props . value . getTime ( ) ) {
@@ -67,6 +74,14 @@ class DatePickerItem extends Component {
67
74
! shallowEqual ( nextState , this . state ) ;
68
75
}
69
76
77
+ componentWillUnmount ( ) {
78
+ const viewport = this . viewport ;
79
+ viewport . removeEventListener ( 'touchstart' , this . handleContentTouch , false ) ;
80
+ viewport . removeEventListener ( 'touchmove' , this . handleContentTouch , false ) ;
81
+ viewport . removeEventListener ( 'touchend' , this . handleContentTouch , false ) ;
82
+ viewport . removeEventListener ( 'mousedown' , this . handleContentMouseDown , false ) ;
83
+ }
84
+
70
85
_iniDates ( date ) {
71
86
const { typeName } = this . props ;
72
87
const dates = Array ( ...Array ( DATE_LENGTH ) )
@@ -258,11 +273,8 @@ class DatePickerItem extends Component {
258
273
return (
259
274
< div className = "datepicker-col-1" >
260
275
< div
261
- className = "datepicker-viewport"
262
- onTouchStart = { this . handleContentTouch }
263
- onTouchMove = { this . handleContentTouch }
264
- onTouchEnd = { this . handleContentTouch }
265
- onMouseDown = { this . handleContentMouseDown } >
276
+ ref = { viewport => this . viewport = viewport } // eslint-disable-line
277
+ className = "datepicker-viewport" >
266
278
< div className = "datepicker-wheel" >
267
279
< ul
268
280
ref = "scroll"
0 commit comments