mirror of
https://github.com/ant-design/ant-design.git
synced 2025-06-12 12:23:08 +08:00
docs: rewrite Form demos to ES6 component (#4949)
This commit is contained in:
parent
3308bce9b9
commit
62e80928d5
@ -18,21 +18,21 @@ import { Form, Select, Input, Button } from 'antd';
|
|||||||
const FormItem = Form.Item;
|
const FormItem = Form.Item;
|
||||||
const Option = Select.Option;
|
const Option = Select.Option;
|
||||||
|
|
||||||
const App = Form.create()(React.createClass({
|
class App extends React.Component {
|
||||||
handleSubmit(e) {
|
handleSubmit = (e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
this.props.form.validateFields((err, values) => {
|
this.props.form.validateFields((err, values) => {
|
||||||
if (!err) {
|
if (!err) {
|
||||||
console.log('Received values of form: ', values);
|
console.log('Received values of form: ', values);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
}
|
||||||
handleSelectChange(value) {
|
handleSelectChange = (value) => {
|
||||||
console.log(value);
|
console.log(value);
|
||||||
this.props.form.setFieldsValue({
|
this.props.form.setFieldsValue({
|
||||||
note: `Hi, ${value === 'male' ? 'man' : 'lady'}!`,
|
note: `Hi, ${value === 'male' ? 'man' : 'lady'}!`,
|
||||||
});
|
});
|
||||||
},
|
}
|
||||||
render() {
|
render() {
|
||||||
const { getFieldDecorator } = this.props.form;
|
const { getFieldDecorator } = this.props.form;
|
||||||
return (
|
return (
|
||||||
@ -70,8 +70,10 @@ const App = Form.create()(React.createClass({
|
|||||||
</FormItem>
|
</FormItem>
|
||||||
</Form>
|
</Form>
|
||||||
);
|
);
|
||||||
},
|
}
|
||||||
}));
|
}
|
||||||
|
|
||||||
ReactDOM.render(<App />, mountNode);
|
const WrappedApp = Form.create()(App);
|
||||||
|
|
||||||
|
ReactDOM.render(<WrappedApp />, mountNode);
|
||||||
````
|
````
|
||||||
|
@ -23,22 +23,24 @@ import { Form, Input, Select, Button } from 'antd';
|
|||||||
const FormItem = Form.Item;
|
const FormItem = Form.Item;
|
||||||
const Option = Select.Option;
|
const Option = Select.Option;
|
||||||
|
|
||||||
const PriceInput = React.createClass({
|
class PriceInput extends React.Component {
|
||||||
getInitialState() {
|
constructor(props) {
|
||||||
|
super(props);
|
||||||
|
|
||||||
const value = this.props.value || {};
|
const value = this.props.value || {};
|
||||||
return {
|
this.state = {
|
||||||
number: value.number || 0,
|
number: value.number || 0,
|
||||||
currency: value.currency || 'rmb',
|
currency: value.currency || 'rmb',
|
||||||
};
|
};
|
||||||
},
|
}
|
||||||
componentWillReceiveProps(nextProps) {
|
componentWillReceiveProps(nextProps) {
|
||||||
// Should be a controlled component.
|
// Should be a controlled component.
|
||||||
if ('value' in nextProps) {
|
if ('value' in nextProps) {
|
||||||
const value = nextProps.value;
|
const value = nextProps.value;
|
||||||
this.setState(value);
|
this.setState(value);
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
handleNumberChange(e) {
|
handleNumberChange = (e) => {
|
||||||
const number = parseInt(e.target.value || 0, 10);
|
const number = parseInt(e.target.value || 0, 10);
|
||||||
if (isNaN(number)) {
|
if (isNaN(number)) {
|
||||||
return;
|
return;
|
||||||
@ -47,20 +49,20 @@ const PriceInput = React.createClass({
|
|||||||
this.setState({ number });
|
this.setState({ number });
|
||||||
}
|
}
|
||||||
this.triggerChange({ number });
|
this.triggerChange({ number });
|
||||||
},
|
}
|
||||||
handleCurrencyChange(currency) {
|
handleCurrencyChange = (currency) => {
|
||||||
if (!('value' in this.props)) {
|
if (!('value' in this.props)) {
|
||||||
this.setState({ currency });
|
this.setState({ currency });
|
||||||
}
|
}
|
||||||
this.triggerChange({ currency });
|
this.triggerChange({ currency });
|
||||||
},
|
}
|
||||||
triggerChange(changedValue) {
|
triggerChange = (changedValue) => {
|
||||||
// Should provide an event to pass value to Form.
|
// Should provide an event to pass value to Form.
|
||||||
const onChange = this.props.onChange;
|
const onChange = this.props.onChange;
|
||||||
if (onChange) {
|
if (onChange) {
|
||||||
onChange(Object.assign({}, this.state, changedValue));
|
onChange(Object.assign({}, this.state, changedValue));
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
render() {
|
render() {
|
||||||
const { size } = this.props;
|
const { size } = this.props;
|
||||||
const state = this.state;
|
const state = this.state;
|
||||||
@ -84,25 +86,25 @@ const PriceInput = React.createClass({
|
|||||||
</Select>
|
</Select>
|
||||||
</span>
|
</span>
|
||||||
);
|
);
|
||||||
},
|
}
|
||||||
});
|
}
|
||||||
|
|
||||||
const Demo = Form.create()(React.createClass({
|
class Demo extends React.Component {
|
||||||
handleSubmit(e) {
|
handleSubmit = (e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
this.props.form.validateFields((err, values) => {
|
this.props.form.validateFields((err, values) => {
|
||||||
if (!err) {
|
if (!err) {
|
||||||
console.log('Received values of form: ', values);
|
console.log('Received values of form: ', values);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
}
|
||||||
checkPrice(rule, value, callback) {
|
checkPrice = (rule, value, callback) => {
|
||||||
if (value.number > 0) {
|
if (value.number > 0) {
|
||||||
callback();
|
callback();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
callback('Price must greater than zero!');
|
callback('Price must greater than zero!');
|
||||||
},
|
}
|
||||||
render() {
|
render() {
|
||||||
const { getFieldDecorator } = this.props.form;
|
const { getFieldDecorator } = this.props.form;
|
||||||
return (
|
return (
|
||||||
@ -118,8 +120,10 @@ const Demo = Form.create()(React.createClass({
|
|||||||
</FormItem>
|
</FormItem>
|
||||||
</Form>
|
</Form>
|
||||||
);
|
);
|
||||||
},
|
}
|
||||||
}));
|
}
|
||||||
|
|
||||||
ReactDOM.render(<Demo />, mountNode);
|
const WrappedDemo = Form.create()(Demo);
|
||||||
|
|
||||||
|
ReactDOM.render(<WrappedDemo />, mountNode);
|
||||||
````
|
````
|
||||||
|
@ -56,17 +56,17 @@ const CollectionCreateForm = Form.create()(
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
const CollectionsPage = React.createClass({
|
class CollectionsPage extends React.Component {
|
||||||
getInitialState() {
|
state = {
|
||||||
return { visible: false };
|
visible: false,
|
||||||
},
|
};
|
||||||
showModal() {
|
showModal = () => {
|
||||||
this.setState({ visible: true });
|
this.setState({ visible: true });
|
||||||
},
|
}
|
||||||
handleCancel() {
|
handleCancel = () => {
|
||||||
this.setState({ visible: false });
|
this.setState({ visible: false });
|
||||||
},
|
}
|
||||||
handleCreate() {
|
handleCreate = () => {
|
||||||
const form = this.form;
|
const form = this.form;
|
||||||
form.validateFields((err, values) => {
|
form.validateFields((err, values) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
@ -77,10 +77,10 @@ const CollectionsPage = React.createClass({
|
|||||||
form.resetFields();
|
form.resetFields();
|
||||||
this.setState({ visible: false });
|
this.setState({ visible: false });
|
||||||
});
|
});
|
||||||
},
|
}
|
||||||
saveFormRef(form) {
|
saveFormRef = (form) => {
|
||||||
this.form = form;
|
this.form = form;
|
||||||
},
|
}
|
||||||
render() {
|
render() {
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
@ -93,8 +93,8 @@ const CollectionsPage = React.createClass({
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
},
|
}
|
||||||
});
|
}
|
||||||
|
|
||||||
ReactDOM.render(<CollectionsPage />, mountNode);
|
ReactDOM.render(<CollectionsPage />, mountNode);
|
||||||
````
|
````
|
||||||
|
@ -45,21 +45,19 @@ const CustomizedForm = Form.create({
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
const Demo = React.createClass({
|
class Demo extends React.Component {
|
||||||
getInitialState() {
|
state = {
|
||||||
return {
|
|
||||||
fields: {
|
fields: {
|
||||||
username: {
|
username: {
|
||||||
value: 'benjycui',
|
value: 'benjycui',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
},
|
handleFormChange = (changedFields) => {
|
||||||
handleFormChange(changedFields) {
|
|
||||||
this.setState({
|
this.setState({
|
||||||
fields: { ...this.state.fields, ...changedFields },
|
fields: { ...this.state.fields, ...changedFields },
|
||||||
});
|
});
|
||||||
},
|
}
|
||||||
render() {
|
render() {
|
||||||
const fields = this.state.fields;
|
const fields = this.state.fields;
|
||||||
return (
|
return (
|
||||||
@ -70,8 +68,8 @@ const Demo = React.createClass({
|
|||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
},
|
}
|
||||||
});
|
}
|
||||||
|
|
||||||
ReactDOM.render(<Demo />, mountNode);
|
ReactDOM.render(<Demo />, mountNode);
|
||||||
````
|
````
|
||||||
|
@ -21,19 +21,19 @@ function hasErrors(fieldsError) {
|
|||||||
return Object.keys(fieldsError).some(field => fieldsError[field]);
|
return Object.keys(fieldsError).some(field => fieldsError[field]);
|
||||||
}
|
}
|
||||||
|
|
||||||
const HorizontalLoginForm = Form.create()(React.createClass({
|
class HorizontalLoginForm extends React.Component {
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
// To disabled submit button at the beginning.
|
// To disabled submit button at the beginning.
|
||||||
this.props.form.validateFields();
|
this.props.form.validateFields();
|
||||||
},
|
}
|
||||||
handleSubmit(e) {
|
handleSubmit = (e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
this.props.form.validateFields((err, values) => {
|
this.props.form.validateFields((err, values) => {
|
||||||
if (!err) {
|
if (!err) {
|
||||||
console.log('Received values of form: ', values);
|
console.log('Received values of form: ', values);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
}
|
||||||
render() {
|
render() {
|
||||||
const { getFieldDecorator, getFieldsError, getFieldError, isFieldTouched } = this.props.form;
|
const { getFieldDecorator, getFieldsError, getFieldError, isFieldTouched } = this.props.form;
|
||||||
|
|
||||||
@ -73,8 +73,10 @@ const HorizontalLoginForm = Form.create()(React.createClass({
|
|||||||
</FormItem>
|
</FormItem>
|
||||||
</Form>
|
</Form>
|
||||||
);
|
);
|
||||||
},
|
}
|
||||||
}));
|
}
|
||||||
|
|
||||||
ReactDOM.render(<HorizontalLoginForm />, mountNode);
|
const WrappedHorizontalLoginForm = Form.create()(HorizontalLoginForm);
|
||||||
|
|
||||||
|
ReactDOM.render(<WrappedHorizontalLoginForm />, mountNode);
|
||||||
````
|
````
|
||||||
|
@ -17,15 +17,15 @@ Normal login form which can contain more elements.
|
|||||||
import { Form, Icon, Input, Button, Checkbox } from 'antd';
|
import { Form, Icon, Input, Button, Checkbox } from 'antd';
|
||||||
const FormItem = Form.Item;
|
const FormItem = Form.Item;
|
||||||
|
|
||||||
const NormalLoginForm = Form.create()(React.createClass({
|
class NormalLoginForm extends React.Component {
|
||||||
handleSubmit(e) {
|
handleSubmit = (e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
this.props.form.validateFields((err, values) => {
|
this.props.form.validateFields((err, values) => {
|
||||||
if (!err) {
|
if (!err) {
|
||||||
console.log('Received values of form: ', values);
|
console.log('Received values of form: ', values);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
}
|
||||||
render() {
|
render() {
|
||||||
const { getFieldDecorator } = this.props.form;
|
const { getFieldDecorator } = this.props.form;
|
||||||
return (
|
return (
|
||||||
@ -59,10 +59,12 @@ const NormalLoginForm = Form.create()(React.createClass({
|
|||||||
</FormItem>
|
</FormItem>
|
||||||
</Form>
|
</Form>
|
||||||
);
|
);
|
||||||
},
|
}
|
||||||
}));
|
}
|
||||||
|
|
||||||
ReactDOM.render(<NormalLoginForm />, mountNode);
|
const WrappedNormalLoginForm = Form.create()(NormalLoginForm);
|
||||||
|
|
||||||
|
ReactDOM.render(<WrappedNormalLoginForm />, mountNode);
|
||||||
````
|
````
|
||||||
|
|
||||||
```css
|
```css
|
||||||
|
@ -42,39 +42,37 @@ const residences = [{
|
|||||||
}],
|
}],
|
||||||
}];
|
}];
|
||||||
|
|
||||||
const RegistrationForm = Form.create()(React.createClass({
|
class RegistrationForm extends React.Component {
|
||||||
getInitialState() {
|
state = {
|
||||||
return {
|
|
||||||
passwordDirty: false,
|
passwordDirty: false,
|
||||||
};
|
};
|
||||||
},
|
handleSubmit = (e) => {
|
||||||
handleSubmit(e) {
|
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
this.props.form.validateFieldsAndScroll((err, values) => {
|
this.props.form.validateFieldsAndScroll((err, values) => {
|
||||||
if (!err) {
|
if (!err) {
|
||||||
console.log('Received values of form: ', values);
|
console.log('Received values of form: ', values);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
}
|
||||||
handlePasswordBlur(e) {
|
handlePasswordBlur = (e) => {
|
||||||
const value = e.target.value;
|
const value = e.target.value;
|
||||||
this.setState({ passwordDirty: this.state.passwordDirty || !!value });
|
this.setState({ passwordDirty: this.state.passwordDirty || !!value });
|
||||||
},
|
}
|
||||||
checkPassword(rule, value, callback) {
|
checkPassword = (rule, value, callback) => {
|
||||||
const form = this.props.form;
|
const form = this.props.form;
|
||||||
if (value && value !== form.getFieldValue('password')) {
|
if (value && value !== form.getFieldValue('password')) {
|
||||||
callback('Two passwords that you enter is inconsistent!');
|
callback('Two passwords that you enter is inconsistent!');
|
||||||
} else {
|
} else {
|
||||||
callback();
|
callback();
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
checkConfirm(rule, value, callback) {
|
checkConfirm = (rule, value, callback) => {
|
||||||
const form = this.props.form;
|
const form = this.props.form;
|
||||||
if (value && this.state.passwordDirty) {
|
if (value && this.state.passwordDirty) {
|
||||||
form.validateFields(['confirm'], { force: true });
|
form.validateFields(['confirm'], { force: true });
|
||||||
}
|
}
|
||||||
callback();
|
callback();
|
||||||
},
|
}
|
||||||
render() {
|
render() {
|
||||||
const { getFieldDecorator } = this.props.form;
|
const { getFieldDecorator } = this.props.form;
|
||||||
const formItemLayout = {
|
const formItemLayout = {
|
||||||
@ -210,10 +208,12 @@ const RegistrationForm = Form.create()(React.createClass({
|
|||||||
</FormItem>
|
</FormItem>
|
||||||
</Form>
|
</Form>
|
||||||
);
|
);
|
||||||
},
|
}
|
||||||
}));
|
}
|
||||||
|
|
||||||
ReactDOM.render(<RegistrationForm />, mountNode);
|
const WrappedRegistrationForm = Form.create()(RegistrationForm);
|
||||||
|
|
||||||
|
ReactDOM.render(<WrappedRegistrationForm />, mountNode);
|
||||||
````
|
````
|
||||||
|
|
||||||
````css
|
````css
|
||||||
|
@ -19,8 +19,8 @@ const FormItem = Form.Item;
|
|||||||
const MonthPicker = DatePicker.MonthPicker;
|
const MonthPicker = DatePicker.MonthPicker;
|
||||||
const RangePicker = DatePicker.RangePicker;
|
const RangePicker = DatePicker.RangePicker;
|
||||||
|
|
||||||
const TimeRelatedForm = Form.create()(React.createClass({
|
class TimeRelatedForm extends React.Component {
|
||||||
handleSubmit(e) {
|
handleSubmit = (e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
||||||
this.props.form.validateFields((err, fieldsValue) => {
|
this.props.form.validateFields((err, fieldsValue) => {
|
||||||
@ -45,7 +45,7 @@ const TimeRelatedForm = Form.create()(React.createClass({
|
|||||||
};
|
};
|
||||||
console.log('Received values of form: ', values);
|
console.log('Received values of form: ', values);
|
||||||
});
|
});
|
||||||
},
|
}
|
||||||
render() {
|
render() {
|
||||||
const { getFieldDecorator } = this.props.form;
|
const { getFieldDecorator } = this.props.form;
|
||||||
const formItemLayout = {
|
const formItemLayout = {
|
||||||
@ -113,8 +113,10 @@ const TimeRelatedForm = Form.create()(React.createClass({
|
|||||||
</FormItem>
|
</FormItem>
|
||||||
</Form>
|
</Form>
|
||||||
);
|
);
|
||||||
},
|
}
|
||||||
}));
|
}
|
||||||
|
|
||||||
ReactDOM.render(<TimeRelatedForm />, mountNode);
|
const WrappedTimeRelatedForm = Form.create()(TimeRelatedForm);
|
||||||
|
|
||||||
|
ReactDOM.render(<WrappedTimeRelatedForm />, mountNode);
|
||||||
````
|
````
|
||||||
|
@ -23,23 +23,21 @@ const Option = Select.Option;
|
|||||||
const RadioButton = Radio.Button;
|
const RadioButton = Radio.Button;
|
||||||
const RadioGroup = Radio.Group;
|
const RadioGroup = Radio.Group;
|
||||||
|
|
||||||
const Demo = Form.create()(React.createClass({
|
class Demo extends React.Component {
|
||||||
handleSubmit(e) {
|
handleSubmit = (e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
this.props.form.validateFields((err, values) => {
|
this.props.form.validateFields((err, values) => {
|
||||||
if (!err) {
|
if (!err) {
|
||||||
console.log('Received values of form: ', values);
|
console.log('Received values of form: ', values);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
}
|
||||||
|
normFile = (e) => {
|
||||||
normFile(e) {
|
|
||||||
if (Array.isArray(e)) {
|
if (Array.isArray(e)) {
|
||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
return e && e.fileList;
|
return e && e.fileList;
|
||||||
},
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { getFieldDecorator } = this.props.form;
|
const { getFieldDecorator } = this.props.form;
|
||||||
const formItemLayout = {
|
const formItemLayout = {
|
||||||
@ -164,8 +162,10 @@ const Demo = Form.create()(React.createClass({
|
|||||||
</FormItem>
|
</FormItem>
|
||||||
</Form>
|
</Form>
|
||||||
);
|
);
|
||||||
},
|
}
|
||||||
}));
|
}
|
||||||
|
|
||||||
ReactDOM.render(<Demo />, mountNode);
|
const WrappedDemo = Form.create()(Demo);
|
||||||
|
|
||||||
|
ReactDOM.render(<WrappedDemo />, mountNode);
|
||||||
````
|
````
|
||||||
|
@ -36,7 +36,6 @@ class RawForm extends React.Component {
|
|||||||
value: 11,
|
value: 11,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
handleNumberChange = (value) => {
|
handleNumberChange = (value) => {
|
||||||
this.setState({
|
this.setState({
|
||||||
number: {
|
number: {
|
||||||
@ -45,7 +44,6 @@ class RawForm extends React.Component {
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const formItemLayout = {
|
const formItemLayout = {
|
||||||
labelCol: { span: 7 },
|
labelCol: { span: 7 },
|
||||||
|
Loading…
Reference in New Issue
Block a user