@@ -147,7 +147,7 @@ export default class PickerAny extends React.Component {
147147 }
148148
149149 _slideUp ( ) {
150- this . isMoving = true ;
150+ this . _isMoving = true ;
151151 Animated . timing (
152152 this . state . slideAnim ,
153153 {
@@ -156,14 +156,14 @@ export default class PickerAny extends React.Component {
156156 }
157157 ) . start ( ( evt ) => {
158158 if ( evt . finished ) {
159- this . isMoving = false ;
160- this . isPickerShow = true ;
159+ this . _isMoving = false ;
160+ this . _isPickerShow = true ;
161161 }
162162 } ) ;
163163 }
164164
165165 _slideDown ( ) {
166- this . isMoving = true ;
166+ this . _isMoving = true ;
167167 Animated . timing (
168168 this . state . slideAnim ,
169169 {
@@ -172,17 +172,17 @@ export default class PickerAny extends React.Component {
172172 }
173173 ) . start ( ( evt ) => {
174174 if ( evt . finished ) {
175- this . isMoving = false ;
176- this . isPickerShow = false ;
175+ this . _isMoving = false ;
176+ this . _isPickerShow = false ;
177177 }
178178 } ) ;
179179 }
180180
181181 _toggle ( ) {
182- if ( this . isMoving ) {
182+ if ( this . _isMoving ) {
183183 return ;
184184 }
185- if ( this . isPickerShow ) {
185+ if ( this . _isPickerShow ) {
186186 this . _slideDown ( ) ;
187187 }
188188 else {
@@ -193,6 +193,19 @@ export default class PickerAny extends React.Component {
193193 toggle ( ) {
194194 this . _toggle ( ) ;
195195 }
196+ show ( ) {
197+ if ( ! this . _isPickerShow ) {
198+ this . _slideUp ( ) ;
199+ }
200+ }
201+ hide ( ) {
202+ if ( this . _isPickerShow ) {
203+ this . _slideDown ( ) ;
204+ }
205+ }
206+ isPickerShow ( ) {
207+ return this . _isPickerShow ;
208+ }
196209
197210 _prePressHandle ( callback ) {
198211 //通知子组件往上滚
@@ -215,22 +228,21 @@ export default class PickerAny extends React.Component {
215228 }
216229
217230 _renderParallelWheel ( pickerData ) {
218- let me = this ;
219231 return pickerData . map ( ( item , index ) => {
220232 return (
221233 < View style = { styles . pickerWheel } key = { index } >
222234 < Picker
223- selectedValue = { me . state . selectedValue [ index ] }
235+ selectedValue = { this . state . selectedValue [ index ] }
224236 onValueChange = { value => {
225- me . pickedValue . splice ( index , 1 , value ) ;
237+ this . pickedValue . splice ( index , 1 , value ) ;
226238 //do not set state to another object!! why?
227- // me .setState({
228- // selectedValue: me .pickedValue
239+ // this .setState({
240+ // selectedValue: this .pickedValue
229241 // });
230- me . setState ( {
231- selectedValue : JSON . parse ( JSON . stringify ( me . pickedValue ) )
242+ this . setState ( {
243+ selectedValue : JSON . parse ( JSON . stringify ( this . pickedValue ) )
232244 } ) ;
233- me . state . onValueChange ( JSON . parse ( JSON . stringify ( me . pickedValue ) ) , index ) ;
245+ this . state . onValueChange ( JSON . parse ( JSON . stringify ( this . pickedValue ) ) , index ) ;
234246 } } >
235247 { item . map ( ( value , index ) => (
236248 < PickerItem
@@ -304,22 +316,20 @@ export default class PickerAny extends React.Component {
304316 }
305317
306318 _renderCascadeWheel ( pickerData ) {
307- let me = this ;
308- let thirdWheel = me . state . thirdWheelData && (
319+ let thirdWheel = this . state . thirdWheelData && (
309320 < View style = { styles . pickerWheel } >
310321 < Picker
311322 ref = { 'thirdWheel' }
312- selectedValue = { me . state . thirdPickedDataIndex }
323+ selectedValue = { this . state . thirdPickedDataIndex }
313324 onValueChange = { ( index ) => {
314- //on ios platform 'this' refers to Picker?
315- me . pickedValue . splice ( 2 , 1 , me . state . thirdWheelData [ index ] ) ;
316- me . setState ( {
325+ this . pickedValue . splice ( 2 , 1 , this . state . thirdWheelData [ index ] ) ;
326+ this . setState ( {
317327 thirdPickedDataIndex : index ,
318328 selectedValue : 'wheel3' + index
319329 } ) ;
320- me . state . onValueChange ( JSON . parse ( JSON . stringify ( me . pickedValue ) ) , 2 ) ;
330+ this . state . onValueChange ( JSON . parse ( JSON . stringify ( this . pickedValue ) ) , 2 ) ;
321331 } } >
322- { me . state . thirdWheelData . map ( ( value , index ) => (
332+ { this . state . thirdWheelData . map ( ( value , index ) => (
323333 < PickerItem
324334 key = { index }
325335 value = { index }
@@ -335,32 +345,32 @@ export default class PickerAny extends React.Component {
335345 < View style = { styles . pickerWheel } >
336346 < Picker
337347 ref = { 'firstWheel' }
338- selectedValue = { me . state . firstPickedData }
348+ selectedValue = { this . state . firstPickedData }
339349 onValueChange = { value => {
340350 let secondWheelData = Object . keys ( pickerData [ value ] ) ;
341- let cascadeData = me . _getCascadeData ( pickerData , me . pickedValue , value , secondWheelData [ 0 ] ) ;
351+ let cascadeData = this . _getCascadeData ( pickerData , this . pickedValue , value , secondWheelData [ 0 ] ) ;
342352 //when onPicked, this.pickedValue will pass to the parent
343353 //when firstWheel changed, second and third will also change
344354 if ( cascadeData . thirdWheelData ) {
345- me . pickedValue . splice ( 0 , 3 , value , cascadeData . secondWheelData [ 0 ] , cascadeData . thirdWheelData [ 0 ] ) ;
355+ this . pickedValue . splice ( 0 , 3 , value , cascadeData . secondWheelData [ 0 ] , cascadeData . thirdWheelData [ 0 ] ) ;
346356 }
347357 else {
348- me . pickedValue . splice ( 0 , 2 , value , cascadeData . secondWheelData [ 0 ] ) ;
358+ this . pickedValue . splice ( 0 , 2 , value , cascadeData . secondWheelData [ 0 ] ) ;
349359 }
350360
351- me . setState ( {
361+ this . setState ( {
352362 selectedValue : 'wheel1' + value ,
353363 firstPickedData : value ,
354364 secondWheelData : cascadeData . secondWheelData ,
355365 secondPickedDataIndex : 0 ,
356366 thirdWheelData : cascadeData . thirdWheelData ,
357367 thirdPickedDataIndex : 0
358368 } ) ;
359- me . state . onValueChange ( JSON . parse ( JSON . stringify ( me . pickedValue ) ) , 0 ) ;
360- me . refs . secondWheel && me . refs . secondWheel . moveTo && me . refs . secondWheel . moveTo ( 0 ) ;
361- me . refs . thirdWheel && me . refs . thirdWheel . moveTo && me . refs . thirdWheel . moveTo ( 0 ) ;
369+ this . state . onValueChange ( JSON . parse ( JSON . stringify ( this . pickedValue ) ) , 0 ) ;
370+ this . refs . secondWheel && this . refs . secondWheel . moveTo && this . refs . secondWheel . moveTo ( 0 ) ;
371+ this . refs . thirdWheel && this . refs . thirdWheel . moveTo && this . refs . thirdWheel . moveTo ( 0 ) ;
362372 } } >
363- { me . state . firstWheelData . map ( ( value , index ) => (
373+ { this . state . firstWheelData . map ( ( value , index ) => (
364374 < PickerItem
365375 key = { index }
366376 value = { value }
@@ -372,26 +382,26 @@ export default class PickerAny extends React.Component {
372382 < View style = { styles . pickerWheel } >
373383 < Picker
374384 ref = { 'secondWheel' }
375- selectedValue = { me . state . secondPickedDataIndex }
385+ selectedValue = { this . state . secondPickedDataIndex }
376386 onValueChange = { ( index ) => {
377- let thirdWheelData = pickerData [ me . state . firstPickedData ] [ me . state . secondWheelData [ index ] ] ;
387+ let thirdWheelData = pickerData [ this . state . firstPickedData ] [ this . state . secondWheelData [ index ] ] ;
378388 if ( thirdWheelData ) {
379- me . pickedValue . splice ( 1 , 2 , me . state . secondWheelData [ index ] , thirdWheelData [ 0 ] ) ;
389+ this . pickedValue . splice ( 1 , 2 , this . state . secondWheelData [ index ] , thirdWheelData [ 0 ] ) ;
380390 }
381391 else {
382- me . pickedValue . splice ( 1 , 1 , me . state . secondWheelData [ index ] ) ;
392+ this . pickedValue . splice ( 1 , 1 , this . state . secondWheelData [ index ] ) ;
383393 }
384394
385- me . setState ( {
395+ this . setState ( {
386396 secondPickedDataIndex : index ,
387397 thirdWheelData,
388398 thirdPickedDataIndex : 0 ,
389399 selectedValue : 'wheel2' + index
390400 } ) ;
391- me . state . onValueChange ( JSON . parse ( JSON . stringify ( me . pickedValue ) ) , 1 ) ;
392- me . refs . thirdWheel && me . refs . thirdWheel . moveTo && me . refs . thirdWheel . moveTo ( 0 ) ;
401+ this . state . onValueChange ( JSON . parse ( JSON . stringify ( this . pickedValue ) ) , 1 ) ;
402+ this . refs . thirdWheel && this . refs . thirdWheel . moveTo && this . refs . thirdWheel . moveTo ( 0 ) ;
393403 } } >
394- { me . state . secondWheelData . map ( ( value , index ) => (
404+ { this . state . secondWheelData . map ( ( value , index ) => (
395405 < PickerItem
396406 key = { index }
397407 value = { index }
@@ -449,13 +459,6 @@ export default class PickerAny extends React.Component {
449459 }
450460
451461 render ( ) {
452- /*let pickerBtn = Platform.OS === 'ios' ? null : (
453- <View style={styles.pickerBtnView}>
454- <Text style={styles.pickerMoveBtn} onPress={this._prePressHandle.bind(this)}>上一个</Text>
455- <Text style={styles.pickerMoveBtn} onPress={this._nextPressHandle.bind(this)}>下一个</Text>
456- </View>
457- );*/
458- // let pickerBtn = null;
459462 return (
460463 < Animated . View style = { [ styles . picker , {
461464 height : this . state . pickerHeight ,
0 commit comments