当前位置: 首页 > news >正文

西安学校网站制作网站主色怎么选择

西安学校网站制作,网站主色怎么选择,哪做网站比较便宜,wordpress点评系统项目需求: 在使用ant design form动态增减表单项Form.List时,Form.List中有多组表单项,一组中的最后一个表单项的校验规则是动态的,该组为最后一组时,最后一个表单项是非必填项,其他时候为必填项。假设动态…

        项目需求:

        在使用ant design form动态增减表单项Form.List时,Form.List中有多组表单项,一组中的最后一个表单项的校验规则是动态的,该组为最后一组时,最后一个表单项是非必填项,其他时候为必填项。假设动态增加了两组表单项,均为填写内容,在必填项校验被触发后,删除了第二组表单项,此时仅剩一组表单项,想要最后一个表单项的校验状态不再显示必填项提示。如下图所示:

想要的效果,最后一个表单项不显示必填项提示:       

        解决思路:

        使用动态校验规则,获取到最后一组的索引,使用form.validateFields重新触发校验规则。

        代码如下:

import React, { useState } from 'react';
import { Form } from 'antd';const App = () => {const [lastIndex, setLastIndex] = useState(false); // form表单最后一组数据的索引const [form] = Form.useForm();useEffect(() => {// 减少表单项时,重新触发表单验证,使form最后一组中最后一个表单项的验证状态不再显示必填项提示form.validateFields([['configs', lastIndex, 'lastFormOption']]);}, [lastIndex, form]);return (<Form form={form} initialValues={{ configs: [{}] }} >……<Form.List name="configs">{(fields, { add, remove }) => (<>{fields.map(({ key, name, ...restField }, index) => {// 这里获取最后一组表单项索引setLastIndex(fields.length - 1);return (<Rowkey={key}>……<Col span={5}><Form.Item{...restField}name={[name, 'lastFormOption']}rules={[{required: (fields.length - 1) == index ? false : true,message: '请选择……',},]}><Selectoptions={options}disabled={(fields.length - 1) == index}placeholder="最后一条自定义条件为非必填项"/></Form.Item></Col><Col span={2}><MinusCircleOutlined onClick={() => remove(name)} /></Col></Row>)})}<Form.Item ><Button type="dashed" onClick={() => add()} block icon={<PlusOutlined />}>新增</Button></Form.Item></>)}</Form.List></Form>);
};
export default App;

        上述解决方式中,如果App作为一个子组件用到了ForwardRef,会出现下面的告警:

        Warning: Cannot update a component (`ForwardRef(AddRemoveFormItems)`) while rendering a different component (`Field`). To locate the bad setState() call inside `Field`, follow the stack trace as described……

        解决方案:去掉setLastIndex(fields.length - 1);等相关代码,将规则校验放在删除表单组的操作中。代码如下:

<MinusCircleOutlined style={{ fontSize: 24 }} onClick={() => {remove(name);form.validateFields();
}} />

http://www.yayakq.cn/news/996876/

相关文章:

  • 详情页制作网站网站运营与管理的目的是
  • 网站开发用 c php一般网站系统并发量
  • 上行30m可以做网站吗wordpress另一更新进行中
  • 国内做网站好的公司友情链接方面
  • 浙江有限公司网站做游戏网站需要哪些许可
  • PHP网站开发都需要学什么快速网站开发 带数据库
  • wordpress 灯箱 插件成都网站排名优化报价
  • 自适应网站wordpress网站对齐原则
  • 男女做的那个视频网站昆山哪里有做网站的
  • 很有质感的网站苏州企业网页设计
  • 徐州做网站谁家最专业宿迁专业网站三合一建设
  • 在建设银行网站上还贷wordpress 简码大全
  • 河南百度建个网站简洁大方的网站
  • 可以直接进入网站的正能量照片建设网站卡盟
  • 网站推广基本方法是wordpress链接微博
  • 建设公司网站模板企业怎么建设网站
  • iis网站架设教程杭州网站建设过程
  • 个人做网站能备案吗正规排名网站推广公司
  • wordpress两个站点共用用户移动平台3g手机网站前端开发布局技巧汇总
  • 品牌形象网站源码wordpress设置html页面
  • 网站飘窗怎样做wordpress 自定义布局
  • 图书馆网站建设方案广州黄埔区开发区建设局网站
  • 博罗县建设局网站关键词排名优化怎么做
  • 网站开发没有完成 需要赔偿多少大连网站建设工作室
  • 企业网站个人可以备案吗建盏厂家联系电话
  • 西安网站建设推广专家做网站副业
  • 本地的南通网站建设快速建站平台源码
  • 购买网站开发服务费入账做网站公司哪家强
  • 网站开发的需求分析wordpress文章换行符
  • 农产品网站建设案例宁波建设网上银行