我正在将当前用户数据从我的 Redux-saga 传递到 antd 表单中,姓名、电子邮件、电话号码、介绍作为初始值传递给表单,我想要做的是我想将表单作为放置请求提交给数据库,如果初始值已更改.. 这是我的代码
import React from 'react';
import {createStructuredSelector} from 'reselect';
import { connect } from 'react-redux';
import { selectCurrentUser } from '../../redux/user/user.selector';
import { Form, Input, Button } from 'antd';
import './profile_form.styles.css'
/* eslint-disable no-template-curly-in-string */
const ProfileForm = ({currentUser}) => {
const {name, email} = currentUser
const onFinish = values => {
console.log(values);
};
const layout = {
labelCol: {
span: 7,
},
wrapperCol: {
span: 15,
},
};
return (
<Form className='profile-form' {...layout}
onFinish={onFinish}
initialValues={{ firstname: name, lastname: name, email: email }}
>
<Form.Item
name='firstname'
label="First Name"
>
<Input />
</Form.Item>
<Form.Item
name= 'lastname'
label="Last Name"
>
<Input value={name}/>
</Form.Item>
<Form.Item
name='email'
label="Email"
>
<Input value={email} />
</Form.Item>
<Form.Item name= 'phonenumber' label="Phone Number"
>
<Input />
</Form.Item>
<Form.Item name='introduction' label="Introduction"
>
<Input.TextArea />
</Form.Item>
<Form.Item wrapperCol={{ ...layout.wrapperCol, offset: 8 }}>
<Button type="primary" htmlType="submit">
Submit
</Button>
</Form.Item>
</Form>
);
};
const mapStateToProps = createStructuredSelector({
currentUser:selectCurrentUser
})
export default connect(mapStateToProps) (ProfileForm);
Run Code Online (Sandbox Code Playgroud)
我在 antd api 中找到了“onValuesChange”,但不知道如何使用它。
小智 18
如果您使用钩子,您可以使用以下代码添加 useEffect:
useEffect(() => {
form.setFieldsValue(defaultValues)
}, [form, defaultValues])
Run Code Online (Sandbox Code Playgroud)
记住首先定义表单值:
const [form] = Form.useForm()
Run Code Online (Sandbox Code Playgroud)
并记住将此表单实例传递给 Form 组件:
<Form
form={form}
layout="vertical"
name="form-name"
initialValues={defaultValues}
onFinish={submitHandler}
>
Run Code Online (Sandbox Code Playgroud)
在这种形式中,您将在组件呈现时更新 defaultValues。如果您正在使用类,您可以将代码放在 componentDidUpdate 生命周期方法中。
问候
小智 1
您可以使用 componentDidUpdate 生命周期方法来比较先前的 props 和当前的 props 值,以检查初始值是否发生更改。如果发生更改,则进行 api 调用以保存在数据库中。希望这可以帮助
归档时间: |
|
查看次数: |
6378 次 |
最近记录: |