如何把一个antdesign组件的在react中的class类写法新的函数式组件写法?

当我们使用react的比较新的18.x版本,我们还用的typescript,我们可能会比较习惯使用(const test: React.FC<PropsWithChildren<FormProps >>)

interface MenuProps{

modalVisible: boolean;

onCancel: () => void;

onConfirm: (form: any) => void;

}

const test: React.FC<PropsWithChildren< MenuProps**>**> = (props) => {

return(<div>test</div>)

}

这种写法,而不想使用 (extends React.Componen)

class Demo extends React.Component {

render() {

return(<div>test</div>)

}

}

我们要如何去改呢?官方文档是react.component 的挂载render的写法,那么我下面举个例子简单讲一下

antdesign 官方文档该树形组件控件地址:Tree - Ant Design多层次的结构列表。https://3x.ant.design/components/tree-cn/

效果图如下

1官方文档的树形控件写法

一下是修改步骤:

(1)把最外层写法修改,主要写法改一下render

改为

(2)修改state

(3)把所有调用原来this.state的地方改一下,其他函数同样如下

改为

对比图如下

(4)主要原来所有的中的所有this.xx调用函数方法去掉this (this.onExpand===》onExpand),还有把所有调用this.state.xx也把this.state去掉(如:this.state)

(4)相关依赖的引入保持不变,但是ts需要一些类型校验比较仔细,所以有些依赖的引入要注意一下,有些飘红的地方注意下类型问题

(5)修改后的完整版如下

相关推荐
榴莲CC几秒前
抗干扰LED数显屏驱动VK1624 数码管显示芯片 3线串行接口
前端
lili-felicity2 分钟前
React Native for Harmony 个人消息列表最新消息置顶实现(多维度权重统计)
javascript·react native·react.js
Tigger7 分钟前
用 Vue 3 做了一套年会抽奖工具,顺便踩了些坑
前端·javascript·vue.js
天天扭码12 分钟前
一文搞懂——React 19到底更新了什么
前端·react.js·前端框架
weixin_4624462317 分钟前
【原创】使用langchain与MCP 与 Chrome DevTools 打造可调用浏览器工具的 Chat Agent
前端·langchain·chrome devtools
OpenTiny社区26 分钟前
OpenTiny 2025年度贡献者榜单正式公布~
前端·javascript·vue.js
OEC小胖胖31 分钟前
08|Commit 阶段:副作用如何被组织、执行与约束
前端·react.js·前端框架·react·开源库
biubiubiu070635 分钟前
Vue脚手架创建项目记录
javascript·vue.js·ecmascript
奋斗的小青年!!38 分钟前
Flutter跨平台开发OpenHarmony应用:个人中心实现
开发语言·前端·flutter·harmonyos·鸿蒙
kkce44 分钟前
域名CDN检测意义
服务器·前端·网络