diff --git a/README.md b/README.md index 8d4623bd2a4838a022233b6045823e45f250c142..6d452d917a9bb38ba3c6bd3b9d4ecfa2f61cf7c9 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,7 @@ Needs react-native >= 0.14.2 - selectedValue any - onPickerDone function - onPickerCancel function +- onValueChange function ####Methods - toggle show or hide picker, default to be hiden diff --git a/index.js b/index.js index bab68c3e04b777af63f96e5b45bc4741dd620c16..a535c1f6d30f7570332725495fdbb72e22b695d7 100644 --- a/index.js +++ b/index.js @@ -33,7 +33,8 @@ export default class PickerAny extends React.Component { pickerData: PropTypes.any.isRequired, selectedValue: PropTypes.any.isRequired, onPickerDone: PropTypes.func, - onPickerCancel: PropTypes.func + onPickerCancel: PropTypes.func, + onValueChange: PropTypes.func }; static defaultProps = { @@ -42,7 +43,8 @@ export default class PickerAny extends React.Component { pickerHeight: 250, showDuration: 300, onPickerDone: ()=>{}, - onPickerCancel: ()=>{} + onPickerCancel: ()=>{}, + onValueChange: ()=>{} }; constructor(props, context){ @@ -81,6 +83,7 @@ export default class PickerAny extends React.Component { let selectedValue = props.selectedValue; let onPickerDone = props.onPickerDone; let onPickerCancel = props.onPickerCancel; + let onValueChange = props.onValueChange; let pickerStyle = pickerData.constructor === Array ? 'parallel' : 'cascade'; let firstWheelData; @@ -126,6 +129,7 @@ export default class PickerAny extends React.Component { selectedValue, onPickerDone, onPickerCancel, + onValueChange, //list of first wheel data firstWheelData, //first wheel selected value @@ -224,6 +228,7 @@ export default class PickerAny extends React.Component { me.setState({ selectedValue: JSON.parse(JSON.stringify(me.pickedValue)) }); + me.state.onValueChange(JSON.parse(JSON.stringify(me.pickedValue)), index); }} > {item.map((value, index) => ( {me.state.thirdWheelData.map((value, index) => ( @@ -379,6 +386,7 @@ export default class PickerAny extends React.Component { thirdPickedDataIndex: 0, selectedValue: 'wheel2'+index }); + me.state.onValueChange(JSON.parse(JSON.stringify(me.pickedValue)), 1); me.refs.thirdWheel && me.refs.thirdWheel.moveTo && me.refs.thirdWheel.moveTo(0); }} > {me.state.secondWheelData.map((value, index) => ( diff --git a/package.json b/package.json index 5af20733e8f036cfac5f75d97f15159ab8848a18..268aef9359a96de2c3cff59f9245e3241bf09824 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-picker", - "version": "0.3.5", + "version": "0.4.0", "description": "react-native-picker", "main": "index.js", "scripts": {