From 256d7d473e5041d8d93c1c28bfb49363028d6572 Mon Sep 17 00:00:00 2001 From: "Jingwei.Zhang" Date: Fri, 7 Jan 2022 10:07:43 +0800 Subject: [PATCH] feat: Optimize simple-form component 1. Optimize simple-form component to support form item onChange function 2. Update login to support custom render Change-Id: I8952d4bd3cff85eeccd76363a8a9c3f3aff3ee25 --- src/components/SimpleForm/index.jsx | 5 ++++- src/pages/auth/containers/Login/index.jsx | 11 ++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/components/SimpleForm/index.jsx b/src/components/SimpleForm/index.jsx index d801a501..909fb84e 100644 --- a/src/components/SimpleForm/index.jsx +++ b/src/components/SimpleForm/index.jsx @@ -65,7 +65,7 @@ export default class index extends Component { const { formItems } = this.props; // eslint-disable-next-line no-shadow return formItems.map((it, index) => { - const { name, hidden, dependencies = [], className } = it; + const { name, hidden, dependencies = [], className, onChange } = it; const options = { name, rules: this.getFormItemRules(it), @@ -73,6 +73,9 @@ export default class index extends Component { dependencies, className, }; + if (onChange) { + options.onChange = onChange; + } return ( {this.renderFormItem(it)} diff --git a/src/pages/auth/containers/Login/index.jsx b/src/pages/auth/containers/Login/index.jsx index 7a195639..4272ec12 100644 --- a/src/pages/auth/containers/Login/index.jsx +++ b/src/pages/auth/containers/Login/index.jsx @@ -23,9 +23,7 @@ import i18n from 'core/i18n'; import { isEmpty } from 'lodash'; import styles from './index.less'; -@inject('rootStore') -@observer -export default class Login extends Component { +export class Login extends Component { constructor(props) { super(props); this.init(); @@ -275,6 +273,10 @@ export default class Login extends Component { this.formRef = React.createRef(); } + renderExtra() { + return null; + } + render() { return ( <> @@ -290,7 +292,10 @@ export default class Login extends Component { formRef={this.formRef} size="large" /> + {this.renderExtra()} ); } } + +export default inject('rootStore')(observer(Login));