Get started with redux-form CDN
MIT licensed
Redux-form is a popular library that connects Redux forms and Redux, simplifying form handling in Redux applications.
Tags:- react
- reactjs
- flux
- redux
- react-redux
- redux-form
- form
- decorator
Stable version
Copied!
How to start using redux-form CDN
import React from 'react';
import { Form, Field } from 'redux-form';
import { createStore, combineReducers } from 'redux';
import { reduxForm, FieldArray, formValueSelector } from 'redux-form';
const initialFormValues = {
name: '',
hobbies: [{ hobby: '' }],
};
const formReducer = (state = initialFormValues, action) => {
switch (action.type) {
case 'ADD_HOBBY':
return {
...state,
hobbies: state.hobbies.concat({ hobby: '' }),
};
case 'REMOVE_HOBBY':
return {
...state,
hobbies: state.hobbies.filter((hobby, index) => index !== action.index),
};
default:
return state;
}
};
const rootReducer = combineReducers({ form: formReducer });
const store = createStore(rootReducer);
const selector = formValueSelector('form');
const AddHobbyForm = ({ push }) => (
<Form name="form" onSubmit={(formProps) => push('/submitted')}>
{({ handleSubmit, values, push }) => (
<form onSubmit={handleSubmit}>
<Field name="name" component="input" type="text" />
<FieldArray name="hobbies">
{({ push, remove }) => (
<div>
{values.hobbies.map((hobby, index) => (
<div key={index}>
<Field name={`hobbies[${index}].hobby`} component="input" type="text" />
<button type="button" onClick={() => remove(index)}>Remove</button>
</div>
))}
<button type="button" onClick={() => push({ type: 'ADD_HOBBY' })}>Add Hobby</button>
</div>
)}
</FieldArray>
<button type="submit">Submit</button>
</form>
)}
</Form>
);
export default AddHobbyForm;
store.dispatch({ type: 'ADD_HOBBY' });
ReactDOM.render(<Provider store={store}><AddHobbyForm /></Provider>, document.getElementById('root'));
Copied!
Copied!
Copied!
All versions
0.0.1
0.0.2
0.0.3
0.0.4
0.0.5
0.0.7
0.0.8
0.0.9
0.1.0
0.1.1
0.1.2
0.1.3
0.2.0
0.2.1
0.2.2
0.2.3
0.2.4
0.2.5
0.3.0
0.4.0
0.4.1
0.5.0
0.6.0
0.6.1
1.0.0
1.0.1
1.1.0
1.2.0
1.2.1
1.3.0
1.3.1
1.3.2
1.3.3
1.3.4
1.4.0
1.4.1
1.5.0
1.5.1
1.5.2
1.5.3
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.6.6
1.6.7
1.6.8
1.7.0
2.0.0
2.0.1
2.1.0
2.2.0
2.2.1
2.2.3
2.2.4
2.2.5
2.2.6
2.2.7
2.2.8
2.3.0
2.3.1
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
2.4.5
3.0.0
3.0.0-beta-1
3.0.0-beta-2
3.0.0-beta-3
3.0.0-beta-4
3.0.1
3.0.10
3.0.11
3.0.12
3.0.2
3.0.3
3.0.4
3.0.5
3.0.6
3.0.7
3.0.8
3.0.9
3.1.0
3.1.1
3.1.2
3.1.3
3.1.4
3.1.5
3.1.6
3.1.7
4.0.0
4.0.1
4.0.2
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.1.0
4.1.1
4.1.10
4.1.11
4.1.12
4.1.13
4.1.14
4.1.15
4.1.16
4.1.2
4.1.3
4.1.4
4.1.5
4.1.6
4.1.7
4.1.8
4.1.9
4.2.0
4.2.1
4.2.2
5.0.0
5.0.1
5.1.0
5.1.1
5.1.2
5.1.3
5.1.4
5.2.0
5.2.1
5.2.2
5.2.3
5.2.4
5.2.5
5.3.0
5.3.1
5.3.2
5.3.3
5.3.4
5.3.5
5.3.6
5.4.0
6.0.0
6.0.0-alpha.1
6.0.0-alpha.10
6.0.0-alpha.11
6.0.0-alpha.12
6.0.0-alpha.13
6.0.0-alpha.14
6.0.0-alpha.15
6.0.0-alpha.2
6.0.0-alpha.3
6.0.0-alpha.4
6.0.0-alpha.5
6.0.0-alpha.6
6.0.0-alpha.7
6.0.0-alpha.8
6.0.0-alpha.9
6.0.0-rc.1
6.0.0-rc.2
6.0.0-rc.3
6.0.0-rc.4
6.0.0-rc.5
6.0.1
6.0.2
6.0.4
6.0.5
6.1.0
6.1.1
6.2.0
6.2.1
6.3.0
6.3.1
6.3.2
6.4.0
6.4.1
6.4.2
6.4.3
6.5.0
6.6.0
6.6.1
6.6.2
6.6.3
6.7.0
6.8.0
7.0.0
7.0.0-alpha.1
7.0.0-alpha.2
7.0.0-alpha.3
7.0.0-alpha.4
7.0.0-alpha.5
7.0.0-alpha.6
7.0.0-alpha.7
7.0.0-alpha.8
7.0.0-alpha.9
7.0.1
7.0.2
7.0.3
7.0.4
7.1.0
7.1.1
7.1.2
7.2.0
7.2.1
7.2.2
7.2.3
7.3.0
7.4.0
7.4.1
7.4.2
8.0.0
8.0.0-0
8.0.1
8.0.2
8.0.3
8.0.4
8.1.0
8.2.0
8.2.1
8.2.2
8.2.3
8.2.4
8.2.5
8.2.6
8.3.0
8.3.1
*** 8.3.10
8.3.2
8.3.3
8.3.4
8.3.5
8.3.6
8.3.7
8.3.8
8.3.9