docs: rewrite Form demos to ES6 component (#4949)

This commit is contained in:
feng zhi hao 2017-02-20 11:50:57 +08:00 committed by 偏右
parent 3308bce9b9
commit 62e80928d5
10 changed files with 112 additions and 104 deletions

View File

@ -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);
```` ````

View File

@ -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);
```` ````

View File

@ -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);
```` ````

View File

@ -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);
```` ````

View File

@ -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);
```` ````

View File

@ -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

View File

@ -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

View File

@ -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);
```` ````

View File

@ -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);
```` ````

View File

@ -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 },