Skip to content

Commit 473d96a

Browse files
committed
Merge pull request #8 from LzxHahaha/master
Debug以及增加两个属性
2 parents a5986f8 + 39c9044 commit 473d96a

File tree

1 file changed

+43
-5
lines changed

1 file changed

+43
-5
lines changed

index.js

Lines changed: 43 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,21 +22,27 @@ export default class PickerAny extends React.Component {
2222

2323
static propTypes = {
2424
pickerBtnText: PropTypes.string,
25+
pickerCancelBtnText: PropTypes.string,
2526
pickerBtnStyle: PropTypes.any,
27+
pickerTitle: PropTypes.string,
28+
pickerTitleStyle: PropTypes.any,
2629
pickerToolBarStyle: PropTypes.any,
2730
pickerItemStyle: PropTypes.any,
2831
pickerHeight: PropTypes.number,
2932
showDuration: PropTypes.number,
3033
pickerData: PropTypes.any.isRequired,
3134
selectedValue: PropTypes.any.isRequired,
32-
onPickerDone: PropTypes.func
35+
onPickerDone: PropTypes.func,
36+
onPickerCancel: PropTypes.func
3337
}
3438

3539
static defaultProps = {
3640
pickerBtnText: '完成',
41+
pickerCancelBtnText: '取消',
3742
pickerHeight: 250,
3843
showDuration: 300,
39-
onPickerDone: ()=>{}
44+
onPickerDone: ()=>{},
45+
onPickerCancel: ()=>{}
4046
}
4147

4248
constructor(props, context){
@@ -56,18 +62,23 @@ export default class PickerAny extends React.Component {
5662
//the pickedValue must looks like [wheelone's, wheeltwo's, ...]
5763
//this.state.selectedValue may be the result of the first pickerWheel
5864
let pickerBtnText = props.pickerBtnText;
65+
let pickerCancelBtnText = props.pickerCancelBtnText;
5966
let pickerBtnStyle = props.pickerBtnStyle;
67+
let pickerTitle = props.pickerTitle;
68+
let pickerTitleStyle = props.pickerTitleStyle;
6069
let pickerToolBarStyle = props.pickerToolBarStyle;
6170
let pickerItemStyle = props.pickerItemStyle;
6271
let pickerHeight = props.pickerHeight;
6372
let showDuration = props.showDuration;
6473
let pickerData = props.pickerData;
6574
let selectedValue = props.selectedValue;
6675
let onPickerDone = props.onPickerDone;
76+
let onPickerCancel = props.onPickerCancel;
6777

6878
let pickerStyle = pickerData.constructor === Array ? 'parallel' : 'cascade';
6979
let firstWheelData;
7080
let firstPickedData;
81+
let secondPickedData;
7182
let secondWheelData;
7283
let secondPickedDataIndex;
7384
let thirdWheelData;
@@ -96,14 +107,18 @@ export default class PickerAny extends React.Component {
96107
this.pickerStyle = pickerStyle;
97108
return {
98109
pickerBtnText,
110+
pickerCancelBtnText,
99111
pickerBtnStyle,
112+
pickerTitle,
113+
pickerTitleStyle,
100114
pickerToolBarStyle,
101115
pickerItemStyle,
102116
pickerHeight,
103117
showDuration,
104118
pickerData,
105119
selectedValue,
106120
onPickerDone,
121+
onPickerCancel,
107122
//list of first wheel data
108123
firstWheelData,
109124
//first wheel selected value
@@ -176,6 +191,11 @@ export default class PickerAny extends React.Component {
176191
this.pickerWheel.moveDown();
177192
}
178193

194+
_pickerCancel() {
195+
this._toggle();
196+
this.state.onPickerCancel();
197+
}
198+
179199
_pickerFinish(){
180200
this._toggle();
181201
this.state.onPickerDone(this.pickedValue);
@@ -298,7 +318,7 @@ export default class PickerAny extends React.Component {
298318
selectedValue={me.state.firstPickedData}
299319
onValueChange={value => {
300320
let secondWheelData = Object.keys(pickerData[value]);
301-
cascadeData = me._getCascadeData(pickerData, me.pickedValue, value, secondWheelData[0]);
321+
let cascadeData = me._getCascadeData(pickerData, me.pickedValue, value, secondWheelData[0]);
302322
//when onPicked, this.pickedValue will pass to the parent
303323
//when firstWheel changed, second and third will also change
304324
if(cascadeData.thirdWheelData){
@@ -412,14 +432,20 @@ export default class PickerAny extends React.Component {
412432
<Text style={styles.pickerMoveBtn} onPress={this._nextPressHandle.bind(this)}>下一个</Text>
413433
</View>
414434
);*/
415-
let pickerBtn = null;
435+
// let pickerBtn = null;
416436
return (
417437
<Animated.View style={[styles.picker, {
418438
height: this.state.pickerHeight,
419439
bottom: this.state.slideAnim
420440
}]}>
421441
<View style={[styles.pickerToolbar, this.state.pickerToolBarStyle]}>
422-
{pickerBtn}
442+
<View style={styles.pickerCancelBtn}>
443+
<Text style={[styles.pickerFinishBtnText, this.state.pickerBtnStyle]}
444+
onPress={this._pickerCancel.bind(this)}>{this.state.pickerCancelBtnText}</Text>
445+
</View>
446+
<Text style={[styles.pickerTitle, this.state.pickerTitleStyle]} numberOfLines={1}>
447+
{this.state.pickerTitle}
448+
</Text>
423449
<View style={styles.pickerFinishBtn}>
424450
<Text style={[styles.pickerFinishBtnText, this.state.pickerBtnStyle]}
425451
onPress={this._pickerFinish.bind(this)}>{this.state.pickerBtnText}</Text>
@@ -469,6 +495,18 @@ let styles = StyleSheet.create({
469495
fontSize: 16,
470496
marginLeft: 20
471497
},
498+
pickerCancelBtn: {
499+
flex: 1,
500+
flexDirection: 'row',
501+
justifyContent: 'flex-start',
502+
alignItems: 'center',
503+
marginLeft: 20
504+
},
505+
pickerTitle: {
506+
flex: 5,
507+
color: 'black',
508+
textAlign: 'center'
509+
},
472510
pickerFinishBtn: {
473511
flex: 1,
474512
flexDirection: 'row',

0 commit comments

Comments
 (0)