已解决
react_8
来自网友在路上 156856提问 提问时间:2023-11-05 03:36:00阅读次数: 56
最佳答案 问答题库568位专家为你答疑解惑
修改
import { Form, Input, InputNumber, Modal, Radio, message } from "antd";
import { useForm } from "antd/es/form/Form";
import { Student } from "../model/Student";
import { useEffect } from "react";
import axios from "axios";
import R from "../model/R";
import { Rule } from "antd/es/form";export default function A6Update({open,onSuccess,student,onCancel,
}: {open: boolean;onSuccess?: () => void;student: Student;onCancel: () => void;
}) {const { Item } = Form;const { Group } = Radio;const options = [{ label: "男", value: "男" },{ label: "女", value: "女" },];//form代表表单对象const [form] = useForm();async function onOK() {const values = await form.validateFields();console.log(values);const resp = await axios.put<R<string>>(`http://localhost:8080/api/students/${values.id}`,values);message.success(resp.data.data);onSuccess && onSuccess();}useEffect(() => {//用点击修改所在行的数据填充表单form.setFieldsValue(student);}, [student]);const nameRules: Rule[] = [{ required: true, message: "姓名必须" },{ min: 2, type: "string", message: "至少两个字符" },];const ageRules: Rule[] = [{ required: true, message: "年龄必须" },{ min: 10, type: "number", message: "至少10岁" },{ max: 120, type: "number", message: "最大120岁" },];return (<Modalopen={open}title="修改学生"onOk={onOK}onCancel={onCancel}forceRender><Form form={form}><Item label="编号" name="id"><Input readOnly></Input></Item><Item label="姓名" name="name" rules={nameRules}><Input></Input></Item><Item label="性别" name="sex"><Groupoptions={options}optionType="button"buttonStyle="solid"></Group></Item><Item label="年龄" name="age" rules={ageRules}><InputNumber></InputNumber></Item></Form></Modal>);
}
-
forceRender 是避免因为使用 useForm 后,表单套在 Modal 中会出现下面的警告
-
Warning: Instance created by `useForm` is not connected to any Form element. Forget to pass `form` prop?
查看全文
99%的人还看了
相似问题
猜你感兴趣
版权申明
本文"react_8":http://eshow365.cn/6-32362-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: VUE组件间通信的七种方式
- 下一篇: 纠结蓝桥杯参加嵌入式还是单片机组?