diff --git a/index.js b/index.js index f2fb25aad5134fd94f3789af2533eb1b4ed3e87f..f218451ae3b7fe06cf15a4ae52f28bf5f356692b 100644 --- a/index.js +++ b/index.js @@ -32,7 +32,8 @@ export default class PickerAny extends React.Component { showDuration: PropTypes.number, pickerData: PropTypes.any.isRequired, selectedValue: PropTypes.any.isRequired, - onPickerDone: PropTypes.func + onPickerDone: PropTypes.func, + onPickerCancel: PropTypes.func } static defaultProps = { @@ -40,7 +41,8 @@ export default class PickerAny extends React.Component { pickerCancelBtnText: '取消', pickerHeight: 250, showDuration: 300, - onPickerDone: ()=>{} + onPickerDone: ()=>{}, + onPickerCancel: ()=>{} } constructor(props, context){ @@ -71,6 +73,7 @@ export default class PickerAny extends React.Component { let pickerData = props.pickerData; let selectedValue = props.selectedValue; let onPickerDone = props.onPickerDone; + let onPickerCancel = props.onPickerCancel; let pickerStyle = pickerData.constructor === Array ? 'parallel' : 'cascade'; let firstWheelData; @@ -115,6 +118,7 @@ export default class PickerAny extends React.Component { pickerData, selectedValue, onPickerDone, + onPickerCancel, //list of first wheel data firstWheelData, //first wheel selected value @@ -187,6 +191,11 @@ export default class PickerAny extends React.Component { this.pickerWheel.moveDown(); } + _pickerCancel() { + this._toggle(); + this.state.onPickerCancel(); + } + _pickerFinish(){ this._toggle(); this.state.onPickerDone(this.pickedValue); @@ -432,7 +441,7 @@ export default class PickerAny extends React.Component { {this.toggle()}}>{this.state.pickerCancelBtnText} + onPress={this._pickerCancel.bind(this)}>{this.state.pickerCancelBtnText} {this.state.pickerTitle}