Javascript 状态更改后未更新Antd表单初始值
我有一张表,上面有学校的名称和学费。表中有一个按钮,用于打开包含此组件或窗体的抽屉。表中有一个按钮,用于切换抽屉的状态。只要我只通过点击按钮读取表单中的值,我的初始值就会更新。但若我更新了价格并提交了任何一个项目的表格,那个么其他项目或学校的初始价格或学校不会改变。当我的状态相应地改变时,我通过呈现状态进行了检查。但是我的表单初始值没有相应地更新Javascript 状态更改后未更新Antd表单初始值,javascript,reactjs,antd,Javascript,Reactjs,Antd,我有一张表,上面有学校的名称和学费。表中有一个按钮,用于打开包含此组件或窗体的抽屉。表中有一个按钮,用于切换抽屉的状态。只要我只通过点击按钮读取表单中的值,我的初始值就会更新。但若我更新了价格并提交了任何一个项目的表格,那个么其他项目或学校的初始价格或学校不会改变。当我的状态相应地改变时,我通过呈现状态进行了检查。但是我的表单初始值没有相应地更新 import React, { useState, useEffect } from 'react' import { Table, Button,
import React, { useState, useEffect } from 'react'
import { Table, Button, Popconfirm, Drawer, Form, Input, Select, notification } from 'antd'
const { Option } = Select
const layout = {
labelCol: {
span: 10,
},
wrapperCol: {
span: 10,
},
}
const tailLayout = {
wrapperCol: {
offset: 7,
span: 14,
},
}
function SchoolRates({ form, relevantData }) {
const [rates, setRates] = useState(null)
useEffect(() => {
setRates(relevantData)
}, [someCondition])
const updateRates = e => {
e.preventDefault()
form.validateFields((error, values) => {
console.log(error, values, 'forms')
})
return 'Data Updated'
}
return (
<>
<div>
{`${rates?.schoolName}, ${rates?.Price}`}
</div>
<Form {...layout} initialValue={rates} onSubmit={e => updateRates(e)}>
<Form.Item label="Country" style={{ marginBottom: '5px' }} size="small">
{form.getFieldDecorator('schoolName', {
initialValue: rates?.schoolname,
rules: [{ required: true, message: 'Please select a school!' }],
})(
<Select
placeholder="School"
allowClear
size="small"
style={{ borderRadius: 0 }}
>
{schoolList.map(item => (
<Option value={item}>{item}</Option>
))}
</Select>,
)}
</Form.Item>
<Form.Item label="Price / Learner" style={{ marginBottom: '5px' }} size="small">
{form.getFieldDecorator('price', {
initialValue: rates?.price,
rules: [{ required: true, message: 'Please enter price/learner' }],
})(
<Input
size="small"
type="number"
style={{ borderRadius: 0 }}
/>,
)}
</Form.Item>
<Form.Item {...tailLayout}>
<Button type="primary" htmlType="submit" size="small">
Save
</Button>
</Form.Item>
</Form>
</>
)
}
export default Form.create()(UpdateRates)
从“React”导入React,{useState,useEffect}
从“antd”导入{表、按钮、Popconfirm、抽屉、窗体、输入、选择、通知}
常量{Option}=Select
常量布局={
labelCol:{
跨度:10,
},
包装纸:{
跨度:10,
},
}
const tailLayout={
包装纸:{
抵销:7,
跨度:14,
},
}
函数学校费率({form,relevantData}){
const[rates,setRates]=useState(null)
useffect(()=>{
设定值(相关数据)
},[someCondition])
const updateRates=e=>{
e、 预防默认值()
form.validateFields((错误,值)=>{
日志(错误,值,'forms')
})
返回“数据更新”
}
返回(
{${rates?.schoolName},${rates?.Price}}
更新率(e)}>
{form.getFieldDecorator('schoolName'{
初始值:费率?学校名称,
规则:[{required:true,消息:“请选择学校!”},
})(
{schoolList.map(项=>(
{item}
))}
,
)}
{form.getFieldDecorator('price'{
初始值:费率?价格,
规则:[{必需:true,消息:'请输入价格/学习者'}],
})(
,
)}
拯救
)
}
导出默认表单。创建()(更新)
我只想重新呈现完整的表单,以便在我从表中单击“其他学校”时更新数据,以更新初始值表单输入字段需要清理或重置。 因此,在成功提交表单后添加form.resetFields()(重置输入字段中的数据)