A component to correctly handle checkboxes, with added support for Redux Form
npm install react-form-checkbox
Both value and label are based on the array items.
<Checkboxes data={['red', 'white', 'blue']} onChange={/* your handler*/} />The onChange has to be a function, the first argument will be the selected options.
You can have full control of the checkbox html.
If you want an à la bootstrap rendering, create a new Component and add it to the itemComponent property.
const bootstrapParser = ({input, label}) => (
<div className="checkbox">
<label>
<input type="checkbox" {...input} />
{label}
</label>
</div>
);
<Checkboxes data={['red', 'white', 'blue']} itemComponent={bootstrapParser} />An array with objects can also be passed.
let options = [
{label: 'Monday', value: 'monday'},
{label: 'Tuesday', value: 'tuesday'},
{label: 'Wednesday', value: 'wednesday'},
{label: 'Thursday', value: 'thursday'},
{label: 'Friday', value: 'friday'},
{label: 'Saturday', value: 'saturday'},
{label: 'Sunday', value: 'sunday'}
];
<Checkboxes data={options} />By default, it will search for the label key to use as a label, and for the value key to use as a value.
To overwrite that, use the labelField or valueField property to define your own.
let options = [
{text: 'Monday', option: 'monday'},
{text: 'Tuesday', option: 'tuesday'},
{text: 'Wednesday', option: 'wednesday'},
{text: 'Thursday', option: 'thursday'},
{text: 'Friday', option: 'friday'},
{text: 'Saturday', option: 'saturday'},
{text: 'Sunday', option: 'sunday'}
];
<Checkboxes data={options} labelField="text" valueField="option" />We created a simple HOC for Form Redux.
import { ReduxCheckbox, Checkboxes } from 'react-form-checkbox';
<Field component={ReduxCheckbox(Checkboxes)} data={['red', 'white', 'blue']} />Every option can be passed to the Form Redux's Field component and will be proxied to the Checkboxes.
Do you want to contribute by creating bugs, fixing them or adding new features? Read the instructions