Ant Design 常见用法与坑点总结(二):Form 表单下拉框设置初始值

news/2024/7/15 17:03:11 标签: javascript, 前端, react.js, antd

前言

Ant Design 是蚂蚁出品的出色优秀的 React 组件库,相信使用 React 进行管理系统开发的小伙伴们或多或少都接触过 Ant Design。很多公司基于 React 开发的管理端系统也都是使用 Ant Design 的组件库。

因此,了解 Ant Design 的常见用法与坑点还是有必要的。

本系列文章针对 Ant Design 一些官方文档虽有提及,但是容易被忽略的,又比较重要常见的用法进行总结。同时对工作使用过程当中遇到的坑点进行归纳。

tip:文章使用的 4.x 版本的 Ant Design。

Form 表单 Select 下拉框设置初始值

在开发工作中,需要为 Form 表单中的 Select 下拉框设置初始值的情况也屡见不鲜。下面介绍两种常见的解决方式。

方式一:使用 setFieldsValue() 方法

该方法通过利用 Form 表单实例提供的 setFieldsValue() 方法设置初始值,在页面初次展示即可调用该方法设置初始值。

const showModal = () => {
  form.setFieldsValue({
    color: "red",
    ...
  });
  ...
}
<Form.Item
  name="color"
  label="车辆外表颜色"
  rules={[{ required: true, message: '请选择车辆外表颜色' }]}
>
  <Select
    placeholder="请选择车辆外表颜色"
    {...props}
  >
    <Option key={1} value="red">红色</Option>
    <Option key={2} value="yellow">黄色</Option>
    <Option key={3} value="blue">蓝色</Option>
  </Select>
</Form.Item>

方式二:使用 Form 表单的 initialValues 属性

通过使用 Form 表单的 initialValues 属性,也能够为表单域设置初始值。

const initialValues = { color: "yellow" };

<Form form={form} initialValues={initialValues}>
  <Form.Item
    name="color"
    label="车辆外表颜色"
    rules={[{ required: true, message: '请选择车辆外表颜色' }]}
  >
      <Select
        placeholder="请选择车辆外表颜色"
        {...props}
      >
        <Option key={1} value="red">红色</Option>
        <Option key={2} value="yellow">黄色</Option>
        <Option key={3} value="blue">蓝色</Option>
      </Select>
  </Form.Item>
</Form>

方式三:使用 Form.IteminitialValue 属性

通过使用 Form.IteminitialValue 属性,单独为该表单项设置初始值,不影响其他表单项。

<Form.Item
  name="color"
  label="车辆外表颜色"
  rules={[{ required: true, message: '请选择车辆外表颜色' }]}
  initialValue="blue"
>
  <Select
    placeholder="请选择车辆外表颜色"
    {...props}
  >
    <Option key={1} value="red">红色</Option>
    <Option key={2} value="yellow">黄色</Option>
    <Option key={3} value="blue">蓝色</Option>
  </Select>
</Form.Item>

错误方式:使用 Select 下拉框的 defaultValue 属性

当时遇到这个问题时,我第一个想法是利用 Select 下拉框的 defaultValue 属性,来设置默认值,如下代码:

<Form.Item
  name="color"
  label="车辆外表颜色"
>
  <Select defaultValue="red">
    <Option key={1} value="red">红色</Option>
    <Option key={2} value="yellow">黄色</Option>
    <Option key={3} value="blue">蓝色</Option>
  </Select>
</Form.Item>

但是该方法并不生效,这是因为 Form.Item 设置了 name 属性,Ant Design 增加了限制,导致其不生效。

设置了 name 属性的 Form.Item 包裹的表单控件,不能用控件的 value 或 defaultValue 来设置表单域的值,默认值可以用 Form 的 initialValues 来设置

官网文档相关说明

在这里插入图片描述
在这里插入图片描述

相关链接:Form 表单


http://www.niftyadmin.cn/n/245090.html

相关文章

Sweet Snippet 之 PlayMode实现

本文简述了一种 PlayMode 的实现方式 PlayMode(播放模式)应该是编程开发中常见的概念,一般来讲有以下几种播放模式: enum class EPlayMode : uint8 {Once, // 单次播放Loop, // 循环播放PingPong, // 往返播放 };总结来讲, PlayMode 影响的是 时间因子(TimeFactor) 的计算,我们…

我的Qt作品(18)模仿Qt Creator IDE写了一个轻量级的视觉框架

Qt Creator的源码比较庞大。前几年我陆陆续续读过里面的源码。也写了几篇博文&#xff1a; https://blog.csdn.net/libaineu2004/article/details/104728857 https://blog.csdn.net/libaineu2004/article/details/89407333 最近一直想找机会&#xff0c;借用这个IDE的皮&…

Spark----RDD(弹性分布式数据集)

RDD 文章目录 RDDRDD是什么&#xff1f;为什么需要RDD&#xff1f;RDD的五大属性WordCount中的RDD的五大属性如何创建RDD&#xff1f;RDD的操作两种基本算子/操作/方法/API分区操作重分区操作聚合操作四个有key函数的区别 关联操作排序操作 RDD的缓存/持久化cache和persistchec…

pytorch 39 yolov5_obb的onnx部署及其优化

进行部署要求配置opencv和onnxruntime环境,这里不累述。 1、模型导出 yolov5_obb项目的使用可以参考:https://hpg123.blog.csdn.net/article/details/129366477 下载yolov5s_csl_dotav1_best.pt,并执行以下命令,得到yolov5s_csl_dotav1_best.onnx python export.py --we…

Simulink 自动代码生成电机控制:硬件开发板系统介绍

目录 前言 电源电路 MCU电路 开发板接口 关于电流采样和过流保护 驱动部分 总结 前言 在介绍开发板之前突然有感而发想多说两句&#xff0c;本人从事电控行业也是有一些年头了&#xff0c;除了刚刚毕业就接触的电机控制外&#xff0c;就是电源控制相关的&#xff0c;像三相P…

继续学习Easyx

画圆角矩形函数&#xff1a;roundrect&#xff0c;前四个参数是和矩形一样的&#xff0c;表示先画一个矩形&#xff0c;然后就是要画它的圆角了&#xff0c;要怎么画它的圆角&#xff1f;这里使用四个一样的椭圆来将它的四个角画出来&#xff0c;而在这个里面的椭圆不再需要四个…

OrCAD原理图检查

OrCAD原理图检查 FPGA或处理器芯片原理图封装检查OrCad元件Part Reference与Reference位号不同检查所有器件是否与CIS库元件匹配用CIS库中的元器件替换已存在器件方法1方法2 DRC检查修改页码Annotate重排位号利用Intersheet References功能进行off-page索引检查封装、厂家、型号…

P75分层解耦-IOCDI详解

一、分层解耦-三层架构 Dao层&#xff1a;数据访问 1、接口 package com.itheima.service;import com.itheima.pojo.Emp;import java.util.List;/*** Description:* date: 2023/4/19 21:47** since JDK 11*/ public interface EmpService { // 获取员工列表数据public List&l…