React.cloneElement
React.cloneElement()接收三个参数第一个参数接收一个ReactElement,可以是真实的dom结构也可以是自定义的。第二个参数返回旧元素的props、key、ref。可以添加新的props,第三个是props.children,不指定默认展示我们调用时添加的子元素。如果指定会覆盖我们调用克隆组件时里面包含的元素。
需求是开发一个组件
- 支持传入 children,并可以展示或者被覆盖掉
- 支持传入的 props 包含自定义组件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | import React from 'react' import { PageContainer } from '@ant-design/pro-layout' ; const Exam = (props) => <div style={{...props.style}}>这是{props.children}111</div> function CloneDemo({dom=<div/>,...props}) { return React.cloneElement(dom, {...props}) } const Menu = () => { return ( <PageContainer> <CloneDemo dom={<Exam style={{color: 'red' }}></Exam>}><h1>kkkkkk</h1></CloneDemo> </PageContainer> ); }; export default Menu; |
你要觉得这篇文章比较好,记得点推荐!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2019-02-13 扩展运算符&reset运算符
2018-02-13 Javscript的函数链式调用基础篇
2018-02-13 Object.keys
2018-02-13 Object.prototype.hasOwnProperty与Object.getOwnPropertyNames
2018-02-13 call和apply还有bind