react18加antd新手上路使用

第一次使用react和antd组件库,记录过程中实用的几个组件和使用方法;

项目中依赖版本
typescript 复制代码
"react": "^18.2.0",
"antd": "^5.3.0",
Input关闭历史填充
typescript 复制代码
 <Input placeholder="请输入ID/名称" allowClear autoComplete="off"/>  
Popover组件使用
typescript 复制代码
<Popover></Popover>
// 挂载到当前节点父节点
<Popover 
    getPopupContainer={(triggerNode: any) => triggerNode.parentNode}>
</Popover>
切换中文加日期插件汉化
typescript 复制代码
import { ConfigProvider } from 'antd';
import 'dayjs/locale/zh-cn';
import zhCN from 'antd/locale/zh_CN';
import 'moment/dist/locale/zh-cn';
import Router from '@/router/index';
function App() {
  return (
    <div className="App">
      <ConfigProvider theme={{ token: { colorPrimary: '#0078D7'} }} locale={zhCN}>
        <Router></Router>
      </ConfigProvider>
    </div>
  )
}
export default App
InputNumber只能输入整数
typescript 复制代码
<InputNumber min={0} max={100} precision={0} placeholder='请输入' style={{width: '100%'}}/>
From.List 赋值
typescript 复制代码
// 自定义校验
const checkImei = (_: any, value: string) => {
    if (!value) {
        return Promise.reject(new Error('1-20个字符,仅支持数字或字母!'));
    }
    const is = Reg.EN_NUM.test(value);
    if (is) {
        if (value.length > 12) {
            return Promise.reject(new Error('1-20个字符,仅支持数字或字母!'));
        } else {
            return Promise.resolve();
        }
    } else {
        return Promise.reject(new Error('1-20个字符,仅支持数字或字母!'));
    }
}
const checkImei = (_: any, value: string) => {
        if (!value) {
            return Promise.reject(new Error('1-20个字符,仅支持数字或字母!'));
        }
        const is = Reg.EN_NUM.test(value);
        if (is) {
            if (value.length > 12) {
                return Promise.reject(new Error('1-20个字符,仅支持数字或字母!'));
            } else {
                return Promise.resolve();
            }
        } else {
            return Promise.reject(new Error('1-20个字符,仅支持数字或字母!'));
        }
    }
<Form initialValues={{
    IMEIS: [{imei: 1}, {imei: 2}, {imei: 3}]
}}>
    <Form.List name="IMEIS">
        {(fields, { add, remove }) => (
        <>
            {fields.map(({ key, name, ...restField }, index) => (
                <div key={key}>
                    <Form.Item label={`IMEI${index + 1}`} {...restField} name={[name, 'imei']} 
                        rules={[{ required: true, validator: checkImei }]}>
                        <Input placeholder="请输入" allowClear/>
                    </Form.Item>
                </div>
            ))}
        </>
    )}
    </Form.List>
</Form>
表格预制高度
typescript 复制代码
<div className={style.table_wrap}>
    <Table columns={columns} 
        dataSource={data} 
        rowKey={record => record.id} 
        scroll={{ x: 50, y: '360px'  }} 
        pagination={false}>
    </Table>
</div>
:global{
    .ant-table-body{
        height: 360px;
    }
}
相关推荐
lyc2333332 分钟前
鸿蒙多子类型输入法:3步实现输入模式自由切换🔤
前端
Danta2 分钟前
从 0 开始学习 Three.js(2)😁
前端·javascript·three.js
凌辰揽月3 分钟前
Web后端基础(基础知识)
java·开发语言·前端·数据库·学习·算法
Dignity_呱4 分钟前
vue3对组件通信做了哪些升级?
前端·vue.js·面试
植物系青年6 分钟前
基于 Lowcode Engine 的低码平台“编码效率”提升实践
前端·低代码
就是我7 分钟前
开发“业务组件库”,该从哪里入手?
前端·javascript·面试
Mintopia9 分钟前
在数字画布上雕刻曲线:NURBS 的奇幻冒险之旅
前端·javascript·计算机图形学
Hacker_seagull13 分钟前
Chrome安装代理插件ZeroOmega(保姆级别)
前端·chrome
石小石Orz17 分钟前
因为没有使用路由懒加载,产生了一个难以寻找的bug
前端
Mintopia17 分钟前
Three.js 力导向图:让数据跳起优雅的华尔兹
前端·javascript·three.js