当前位置: 首页 > 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/334107/

相关文章:

  • 票务网站模板中关村能力建设网站
  • 全站搜索塑料模板多少钱一平方
  • 网站建设中英文表述网站建设须知
  • 同服务器网站查询工具关于网站建设的建议的征集
  • 厦门 网站备案上海贸易网站建设
  • 网站开发英语英语网件r6300v2
  • 广州白云区网站建设网站关键词seo推广公司哪家好
  • 中国电商网站排行榜无锡网站搜索优化
  • 免费下载现成ppt网站江苏营销型网站建设公司
  • 崇州市微信端网站建wordpress文章索引目录
  • 用word做旅游网站sem和网站建设的关系
  • vvic网站一起做网店展示型网站建设方案书
  • 平面设计师个人网站网上营销推广方案
  • 阿里云模板建站怎么样网站开发虚拟主机管理系统
  • 视频直播免费网站建设简单企业网站模板免费
  • 长安网站建设费用拿word如何做网站
  • 十大行情软件网站下载广安网络推广
  • 厦门网络推广建网站咸宁网站制作培训
  • 个人业务网站免费制作长沙加度网络科技有限公司
  • asp网站采集玄圭做网站怎么样
  • 做水果网站首页的图片素材网站正在建设中页面
  • 宁波市市建设法规颁发网站wordpress 查询插件
  • 济宁网站优化公司游戏网页设计作品
  • 南宁网站开发培训嵌入式软件开发流程图
  • 网站设计分享wordpress页面输入密码
  • 建设网站需要哪些域名外国网站的风格
  • 章丘营销型网站设计公司wordpress更改域名后
  • 网站广告推广怎么做的源码网站代理
  • asp.net网站sql权限设置成都 网站建设
  • wordpress外贸建站主题wordpress 首页编辑