From 90451c371d70ef2d8ce5a3aab74932b6f4488120 Mon Sep 17 00:00:00 2001 From: xwenliang Date: Mon, 25 Jan 2016 13:40:05 +0800 Subject: [PATCH] add onValueChange --- README.md | 1 + index.js | 12 ++++++++++-- package.json | 2 +- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 8d4623b..6d452d9 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 bab68c3..a535c1f 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 5af2073..268aef9 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": { -- 2.26.2