Zubair React Form Builder help you to build forms with drag and drop you can also inject your own component.
npm i zubair-react-form-builder import { FormContainer, ToolBox } from 'zubair-react-form-builder';
- custom : Array
- onSave(form) : Function
- updateForm(callback) : Function
- updateOnMount : Boolean
- debug : Boolean
- loader: Boolean // set save button on loading state
// Note OnSave Props also turn on Save Button on <FormContainer />
- custom : Array
You can pass custom components to the form builder
const myCustoms = [ { container : < ContainerComponent/>, preview : < PreviewComponent/>, toolbox : { title : 'Component', icon : 'fa fa-user', name : 'CUSTOM_COM' }, states : { toolType: 'CUSTOM_COM', num1 : 1, num2 : 2 } } ] class App extends React.Component { render(){ /* Simply pass myCustoms to */ <div className="app"/> <div className="row"/> <div className="col-8"/> <FormContainer debug={true} // turn on debuging mode updateOnMount={true} // update on mount updateForm={this.updateForm} onSave={this.save} custom={ myCustoms } /> </div> <div className="col-8"/> < ToolBox custom={ myCustoms } /> </div> </div/> </div/> } save(form){ // you will receive form console.log(form); } updateForm(callback){ // fetch form and set it to callback let form = axios....... callback(form) } }
-
this.props.changeState(state, this.props.index)
-
this.props.removeField(index)
// on change state
changeValue(stateFor, value){
switch (stateFor){
case "TITLE" :
this.setState( { title : value } )
break;
default:
return;
};
setTimeout(() => {
return this.props.changeState(this.state, this.props.index);
}, 0)
}
this.changeValue('TITLE', e.target.value)} />
// on remove field
this.props.removeField(this.props.index)}>x