formsy-antd
Version:
A formsy-react compatibility wrapper for antd form components.
86 lines (66 loc) • 2.17 kB
Markdown
This library is a wrapper for [ant-design](https://github.com/ant-design/ant-design) form components to allow them to be used with
[](https://github.com/formsy-react/formsy-react).
To add formsy-antd to you package.json and install it, run:
```
$ npm i formsy-antd
```
You will also need to add formsy-react if not already installed:
```
$ npm i formsy-react
```
```js
import {Form, FormItem, Input} from 'formsy-antd';
function MyForm() {
return (
<Form onSubmit={action('submit')}>
<FormItem required={true} label="Username">
<Input
name="name"
value="wmzy"
validations="minLength:4"
validationError="minLength:4"
/>
</FormItem>
<button type="submit">submit</button>
</Form>
);
}
```
And import stylesheets manually:
```js
import 'antd/dist/antd.css'; // or 'antd/dist/antd.less'
```
```js
// .babelrc or babel-loader option
{
"plugins": [
["import", { "libraryName": "formsy-antd", "style": "css" }] // `style: true` for less
]
}
```
This allows you to import components from antd without having to manually import the corresponding stylesheet. The antd-babel-plugin will automatically import stylesheets.
```js
// import js and css modularly, parsed by babel-plugin-import
import { DatePicker } from 'formsy-antd';
```
```js
import DatePicker from 'formsy-antd/lib/date-picker'; // for js
import 'antd/lib/date-picker/style/css'; // for css
// import 'antd/lib/date-picker/style'; // that will import less
```
See also: http://ant.design/docs/react/introduce
There are some functions help you to wrap customized form controls.
```js
import Input from 'antd/lib/input';
import {mappingChangeEvent, formsyComponent} from 'formsy-antd/lib/util';
export default formsyComponent(mappingChangeEvent(Input, ev => ev.target.value), '');
```
See [storybook](https://wmzy.github.io/formsy-antd/).