xwd-ant组件库笔记

1.ts

1.1 两个变量中重复定义了type属性,导致type最后识别为undefiend

import { ButtonHTMLAttributes, AnchorHTMLAttributes } from "react";interface BaseButtonProps {children: React.ReactNode;className?: string;style?: React.CSSProperties;/**设置 QFButton 的禁用 */disabled?: boolean;/**设置 QFButton 的尺寸 */size?: "lg" | "sm";/**设置 QFButton 的类型 */type?: "primary" | "danger" | "ghost" | "dashed" | "link" | "text";href?: string;
}type NativeButtonProps = BaseButtonProps & Omit<ButtonHTMLAttributes<HTMLElement>, 'type'>;
type AnchorButtonProps = BaseButtonProps & Omit<AnchorHTMLAttributes<HTMLElement>, 'type'>;export type ButtonProps = Partial<NativeButtonProps & AnchorButtonProps>;

修改

如果你想保持type这个属性名,并且覆盖原生的type属性,你可以使用交叉类型(Intersection Types)和 Omit 工具类型来实现。Omit 可以创建一个省略某些属性的类型。

在你的情况下,你可以从 ButtonHTMLAttributes<HTMLElement>AnchorHTMLAttributes<HTMLElement> 中省略 type 属性,然后再与 BaseButtonProps 进行合并。这样,你就可以保留你在 BaseButtonProps 中定义的 type 属性了。

下面是修改后的代码:

import { ButtonHTMLAttributes, AnchorHTMLAttributes } from "react";interface BaseButtonProps {children: React.ReactNode;className?: string;style?: React.CSSProperties;/**设置 QFButton 的禁用 */disabled?: boolean;/**设置 QFButton 的尺寸 */size?: "lg" | "sm";/**设置 QFButton 的类型 */type?: "primary" | "danger" | "ghost" | "dashed" | "link" | "text";href?: string;
}type NativeButtonProps = BaseButtonProps & Omit<ButtonHTMLAttributes<HTMLElement>, 'type'>;
type AnchorButtonProps = BaseButtonProps & Omit<AnchorHTMLAttributes<HTMLElement>, 'type'>;export type ButtonProps = Partial<NativeButtonProps & AnchorButtonProps>;

这样,你的type属性就会覆盖原生的type属性。但是请注意,这可能会导致一些意想不到的行为,因为原生的type属性在某些情况下是有特定用途的。

2.调试

2.1 直接引入本地的组件库,模拟真实环境使用

由于组件库没有发包,有些组件还只是本地,导致无法直接import { ConfigProvider } from 'xwd-ant',如果我要这样引入模式真实的使用情况,需要改下本地配置

import React from 'react';
// 一开始是这么引入的,直接引入本地组件,但是每次发版都需要手动修改,比较麻烦
// import ConfigProvider from './../index'; 
// 正常使用是直接引入ui库的
import { ConfigProvider } from 'xwd-ant';
import { Button } from 'xwd-ant';export default () => {return (<><ConfigProvider><Button type="primary">测试按钮</Button><Button danger>测试按钮</Button></ConfigProvider></>);
};

其实改下别名就可以了:''xwd-ant': process.cwd() + '/src'

//.dumirc.ts
import { defineConfig } from 'dumi';export default defineConfig({outputPath: 'docs-dist',themeConfig: {name: 'xwd-ant',nav: [{ title: '介绍', link: '/guide' },{ title: '组件', link: '/components/Button' },],theme: {'@xwd-primary': '#1DA57A'}},// 取消打包静态单个组件库和函数工具exportStatic: false,styles: [`.dumi-default-header-left {width: 220px !important;}`,],alias: {'xwd-ant': process.cwd() + '/src'   // 将 xwd-ant 指向 src 目录},
});

然后在根index.js中把要使用的组件进行导出

//src\index.ts
export { default as Button } from './Button';
export { default as FloatButton } from './FloatButton';
export { default as formatDate } from './formatDate';
export { default as Layout } from './Layout';
export { default as PrimaryButton } from './PrimaryButton';
export { default as ConfigProvider } from './ConfigProvider';

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/496825.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenHarmony怎么修改DPI密度值?RK3566鸿蒙开发板演示

本文介绍在开源鸿蒙OpenHarmony系统下&#xff0c;修改DPI密度值的方法&#xff0c;触觉智能Purple Pi OH鸿蒙开发板演示&#xff0c;搭载了瑞芯微RK3566四核处理器&#xff0c;Laval鸿蒙社区推荐开发板&#xff0c;已适配全新开源鸿蒙OpenHarmony5.0 Release系统&#xff0c;适…

OCR实践-Table-Transformer

前言 书接上文 OCR实践—PaddleOCR Table-Transformer 与 PubTables-1M table-transformer&#xff0c;来自微软&#xff0c;基于Detr&#xff0c;在PubTables1M 数据集上进行训练&#xff0c;模型是在提出数据集同时的工作&#xff0c; paper PubTables-1M: Towards comp…

常见的邮件协议SMTP和POP3

常见的邮件协议包括SMTP和POP3&#xff0c;SMTP用来发送邮件&#xff0c;POP3用来接收邮件信息。 SMTP SMTP 是一种用于发送电子邮件的协议。它的主要作用是将**电子邮件**从邮件客户端&#xff08;如 Outlook、Thunderbird&#xff09;或邮件服务器发送到接收服务器。 SMTP …

UGUI源码分析 --- UI的更新入口

首先所有的UI组件都是添加到画布&#xff08;Canvas&#xff09;显示的&#xff0c;所以首先要从Canvas入手&#xff0c;通过搜索脚本函数以及使用Profiler查看UI的函数的执行&#xff0c;定位到了willRenderCanvases函数 打开UI的文件夹&#xff0c; 通过搜索willRenderCanvas…

Wend看源码-Java-集合学习(Set)

概述 Wend看源码-Java-集合学习(List)-CSDN博客 在上一篇文章中&#xff0c;我们深入探讨了Java集合框架的父类以及List集合的细节。接下来&#xff0c;本文将重点阐述Java中的Set集合&#xff0c;包括其内部的数据结构以及核心方法的详尽说明。 Set 集合 图1 java-Set类型数据…

双闭环直流调速系统

一 设计要求 1、原始条件 主要参数&#xff1a;直流电机PN 22KW&#xff0c;额定电压UN220V&#xff0c; 额定电流IN106A&#xff0c;nN 1500r/min&#xff0c;电枢绕组电阻Ra 0.11Ω&#xff0c;主电路总电阻R0.32Ω&#xff0c;磁极对数P2&#xff0c; Ks22&#xff0c;GD2…

word无法创建工作文件,检查临时环境变量。

word无法创建工作文件&#xff0c;检查临时环境变量。 word preview版本&#xff0c;关联打开文件出现报错。word无法创建工作文件&#xff0c;检查临时环境变量。 打开注册表&#xff0c;删除键 Word Preview: HKCR\CLSID{84F66100-FF7C-4fb4-B0C0-02CD7FB668FE} PowerPoint …

Excel将混乱的多行做成1列

目标是将数据按从左到右&#xff0c;再从上到下排成一列。 公式法 首先用textjoin函数将文本包起来&#xff0c;做成一个超长文本。 然后用公式 截取文本 Mid(m1,n,3)&#xff0c;意思就是对m1单元格&#xff0c;从第n个字符开始&#xff0c;截取3个字符出来。 这个公式如何自…

深入解析MySQL索引结构:从数组到B+树的演变与优化

前言&#xff1a; 在数据库查询中&#xff0c;索引是一种关键的性能优化工具。然而&#xff0c;索引的失效可能导致查询效率大幅下降。为了更好地理解索引的工作原理及规避其失效&#xff0c;深入了解索引结构的演变过程尤为重要。 MySQL 的索引数据结构从简单到复杂&#xff0…

怎么把多个PDF合并到一起-免费实用PDF编辑处理工具分享

>>更多PDF文件处理应用技巧请前往 96缔盟PDF处理器 主页 查阅&#xff01; 序言 我之前的文章也有介绍过如何使用96缔盟PDF处理器对PDF文件合并或者批量合并的介绍&#xff0c;但是当时是使用DMPDFUtilTool1.0版本进行的&#xff0c;当时的功能尚不完善&#xff0c;还不支…

medical meadow medical flashcards

“medalpaca/medical_meadow_medical_flashcards” 是一个在 Hugging Face 数据集平台上可用的数据集。这个数据集主要面向医学领域&#xff0c;包含了大量的医学知识卡片&#xff0c;这些卡片由医学生创建和更新&#xff0c;旨在帮助学习和记忆重要的医学概念。以下是关于这个…

新品:SA628F39大功率全双工音频传输模块

SA628F39是一款高集成度的8W大功率全双工无线数据语音一体通话模块&#xff0c;专为高效、稳定的远程通信设计。该模块内置高速微控制器、高性能射频芯片、功率放大器、ESD静电保护和硬件看门狗芯片&#xff0c;具备反接保护、过流过压保护和防死机保护等多重安全功能&#xff…

moviepy将图片序列制作成视频并加载字幕 - python 实现

DataBall 助力快速掌握数据集的信息和使用方式&#xff0c;会员享有 百种数据集&#xff0c;持续增加中。 需要更多数据资源和技术解决方案&#xff0c;知识星球&#xff1a; “DataBall - X 数据球(free)” -------------------------------------------------------------…

面试突击-JAVA集合类(持续更新...)

前言 这篇文档非常适合面试突击人群&#xff0c;java集合类是面试高频问点&#xff0c;阅读完此文章可以直接应对面试官一切问题&#xff0c;最终吊打面试官。 概览 Java 集合&#xff0c;也叫作容器&#xff0c;主要是由两大接口派生而来&#xff1a;一个是 Collection接口&am…

如何计算相位差

如何计算相位差 假设我们有两个同频率的正弦信号&#xff1a; 这里两个信号的角频率w2πf是相同的&#xff0c;根据同频正弦信号相位差的计算方法&#xff0c;直接用两个信号的相位相减。 再来看利用波形图计算相位差的例子&#xff1a; 另一种计算方式&#xff1a;

龙智出席2024零跑智能汽车技术论坛,分享功能安全、需求管理、版本管理、代码扫描等DevSecOps落地实践

龙智快讯 2024年12月5日&#xff0c;由零跑和盖世汽车主办的“2024零跑智能汽车技术论坛”在杭州零跑总部圆满落幕。此次技术论坛聚焦AI语言大模型、AUTOSAR AP平台、DevOps、端到端自动驾驶等热点话题展开探讨&#xff0c;旨在推动智能汽车技术的创新与发展。 龙智作为国内领先…

剑指Offer|LCR 014. 字符串的排列

LCR 014. 字符串的排列 给定两个字符串 s1 和 s2&#xff0c;写一个函数来判断 s2 是否包含 s1 的某个变位词。 换句话说&#xff0c;第一个字符串的排列之一是第二个字符串的 子串 。 示例 1&#xff1a; 输入: s1 "ab" s2 "eidbaooo" 输出: True 解…

LabVIEW条件配置对话框

条件配置对话框&#xff08;Configure Condition Dialog Box&#xff09; 要求&#xff1a;Base Development System 当右键单击**条件禁用结构&#xff08;Conditional Disable Structure&#xff09;**并选择以下选项时&#xff0c;会显示此对话框&#xff1a; Add Subdiagr…

YOLO11改进-注意力-引入自调制特征聚合模块SMFA

本篇文章将介绍一个新的改进机制——SMFA&#xff08;自调制特征聚合模块&#xff09;&#xff0c;并阐述如何将其应用于YOLOv11中&#xff0c;显著提升模型性能。随着深度学习在计算机视觉中的不断进展&#xff0c;目标检测任务也在快速发展。YOLO系列模型&#xff08;You Onl…

嵌入式硬件杂谈(七)IGBT MOS管 三极管应用场景与区别

引言&#xff1a;在现代嵌入式硬件设计中&#xff0c;开关元件作为电路中的重要组成部分&#xff0c;起着至关重要的作用。三种主要的开关元件——IGBT&#xff08;绝缘栅双极型晶体管&#xff09;、MOSFET&#xff08;金属氧化物半导体场效应晶体管&#xff09;和三极管&#…