Skip to content

Commit 291f566

Browse files
committed
Adding setters for every field
1 parent b2084d2 commit 291f566

17 files changed

+188
-32
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ Generate forms with native look and feel in a breeze
3333
* You don't need to create a 'Model' or a 'Struct' that contains your data, just create a form component (the React's way)
3434
* Validate InputFields based on keyboardType (can be overridden using validationFunction)
3535
* Multiple validators
36-
* Reset/Set Fields programmatically
36+
* Reset/Set Fields programmatically (setValue, setDate, setTime)
3737
* Custom Wrapper for Picker & DatePicker Components (iOS Only)
3838

3939
[My blogpost about React Native Form Generator](https://medium.com/@michaelcereda/react-native-forms-the-right-way-315802f989d6#.p9oj79vt3)

examples/FormView.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,8 @@ export class FormView extends React.Component{
8989
this.refs.registrationForm.refs.first_name.setValue("");
9090
this.refs.registrationForm.refs.last_name.setValue("");
9191
this.refs.registrationForm.refs.other_input.setValue("");
92+
this.refs.registrationForm.refs.meeting.setDate(new Date());
93+
this.refs.registrationForm.refs.has_accepted_conditions.setValue(false);
9294
}
9395
render(){
9496

@@ -160,7 +162,7 @@ export class FormView extends React.Component{
160162
male: 'Male',
161163
female: 'Female'
162164
}}
163-
165+
164166
/>
165167
<DatePickerField ref='birthday'
166168
minimumDate={new Date('1/1/1900')}

npm-debug.log

Lines changed: 130 additions & 0 deletions
Large diffs are not rendered by default.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,5 +68,5 @@
6868
"scripts": {
6969
"test": "echo \"Error: no test specified\" && exit 1"
7070
},
71-
"version": "0.9.3"
71+
"version": "0.9.4"
7272
}

src/fields/DatePickerField.ios.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,13 @@ let { View, StyleSheet, TextInput, Text, PickerIOS} = ReactNative;
88
import {DatePickerComponent} from '../lib/DatePickerComponent';
99

1010
export class DatePickerField extends React.Component{
11-
11+
setDate(date){
12+
this.refs.datePickerComponent.setDate(date);
13+
}
1214
render(){
1315
return(<DatePickerComponent
1416
{...this.props}
15-
17+
ref='datePickerComponent'
1618
labelStyle={formStyles.fieldText}
1719
valueStyle = {formStyles.fieldValue}
1820

src/fields/PickerField.android.js

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,13 @@ let { View, StyleSheet, TextInput, Text, PickerIOS} = ReactNative;
88
import {PickerComponent} from '../lib/PickerComponent';
99

1010
export class PickerField extends React.Component{
11-
11+
setValue(value){
12+
this.refs.fieldComponent.setValue(value)
13+
}
1214
render(){
13-
/*
14-
labelStyle={formStyles.fieldText}
15-
valueStyle = {formStyles.fieldValue}
16-
valueContainerStyle = {[formStyles.alignRight,
17-
formStyles.horizontalContainer]}
18-
containerStyle={[formStyles.fieldContainer,
19-
formStyles.horizontalContainer,
20-
this.props.containerStyle,
21-
]}
22-
*/
2315
return(<PickerComponent
2416
{...this.props}
25-
17+
ref='fieldComponent'
2618
pickerProps={{
2719
style:
2820
[

src/fields/PickerField.ios.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@ let { View, StyleSheet, TextInput, Text, PickerIOS} = ReactNative;
88
import {PickerComponent} from '../lib/PickerComponent';
99

1010
export class PickerField extends React.Component{
11-
11+
setValue(value){
12+
this.refs.fieldComponent.setValue(value)
13+
}
1214
render(){
13-
/*
14-
15-
*/
1615
return(<PickerComponent
1716
{...this.props}
17+
ref='fieldComponent'
1818
labelStyle={[formStyles.fieldText, this.props.labelStyle]}
1919
valueStyle = {[formStyles.fieldValue,this.props.valueStyle]}
2020
valueContainerStyle = {[formStyles.alignRight,

src/fields/SwitchField.android.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,14 @@ let { View, StyleSheet, Text, Switch} = require('react-native');
66
import {SwitchComponent} from '../lib/SwitchComponent';
77

88
export class SwitchField extends React.Component{
9-
9+
setValue(value){
10+
this.refs.fieldComponent.setValue(value)
11+
}
1012
render(){
1113

1214
return(<SwitchComponent
1315
{...this.props}
14-
16+
ref='fieldComponent'
1517
containerStyle={[
1618
formStyles.fieldContainer,
1719
formStyles.horizontalContainer,

src/fields/SwitchField.ios.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,14 @@ let { View, StyleSheet, Text, Switch} = require('react-native');
66
import {SwitchComponent} from '../lib/SwitchComponent';
77

88
export class SwitchField extends React.Component{
9-
9+
setValue(value){
10+
this.refs.fieldComponent.setValue(value)
11+
}
1012
render(){
1113

1214
return(<SwitchComponent
1315
{...this.props}
14-
16+
ref='fieldComponent'
1517
containerStyle={[
1618
formStyles.fieldContainer,
1719
formStyles.horizontalContainer,

src/fields/TimePickerField.android.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,16 @@ let { View, StyleSheet, TextInput, Text} = ReactNative;
88
import {TimePickerComponent} from '../lib/TimePickerComponent';
99

1010
export class TimePickerField extends React.Component{
11-
11+
setTime(date){
12+
this.refs.datePickerComponent.setTime(date);
13+
}
1214
render(){
1315
/*
1416
1517
*/
1618
return(<TimePickerComponent
1719
{...this.props}
18-
20+
ref='fieldComponent'
1921
labelStyle={[formStyles.fieldText, this.props.labelStyle]}
2022
valueStyle = {[formStyles.fieldValue,this.props.valueStyle]}
2123
valueContainerStyle = {[formStyles.alignRight,

0 commit comments

Comments
 (0)