当前位置: 首页 > news >正文

react slot传递

 子组件(FormContainer)实现

功能需求​:

  • 管理内部状态(如表单输入值)。
  • 点击确认按钮时,将状态传递给父组件。
  • 点击取消按钮时,执行清理操作。
    import React, { useState } from 'react';const FormContainer = ({ children, onConfirm, onCancel }) => {const [inputValue, setInputValue] = useState('');// 确认按钮点击处理const handleConfirm = () => {onConfirm(inputValue); // 传递值给父组件};// 取消按钮点击处理const handleCancel = () => {setInputValue(''); // 清空状态onCancel(); // 通知父组件};// 克隆子元素,注入点击事件const childrenWithProps = React.Children.map(children, (child) => {const action = child.props['data-action'];// 合并原有 onClick 和自定义处理逻辑const childOnClick = child.props.onClick;const onClick = (e) => {childOnClick?.(e); // 原有 onClickif (action === 'confirm') handleConfirm();else if (action === 'cancel') handleCancel();};return React.cloneElement(child, { onClick });});return (<div><inputvalue={inputValue}onChange={(e) => setInputValue(e.target.value)}/>{childrenWithProps}</div>);
    };

     父组件调用

    父组件通过 onConfirm 和 onCancel 接收子组件值:

const ParentComponent = () => {const handleConfirm = (value) => {console.log('提交的值:', value);};const handleCancel = () => {console.log('操作取消');};return (<FormContainer onConfirm={handleConfirm} onCancel={handleCancel}><button data-action="confirm">确认</button><button data-action="cancel">取消</button></FormContainer>);
};

 

相关文章:

  • django filter 日期大于当前日期的
  • 游戏引擎学习第247天:简化DEBUG_VALUE
  • 游戏引擎学习第248天:清理数据块显示
  • HQChart k线图配置
  • (七)RestAPI 毛子(Http 缓存/乐观锁/Polly/Rate limiting)
  • MIT XV6 - 1.1 Lab: Xv6 and Unix utilities - sleep
  • springboot不连接数据库启动(原先连接了mysql数据库)
  • 【Axure高保真原型】3级多选下拉列表
  • rocketmq一些异常记录
  • 基于云原生架构的后端微服务治理实战指南
  • Python中的协程(Coroutine)
  • django admin 去掉新增 删除
  • 秒杀系统 Kafka 架构进阶优化
  • 用Node.js施展文档比对魔法:轻松实现Word文档差异比较小工具,实现Word差异高亮标注(附完整实战代码)
  • [原创](现代Delphi 12指南):[macOS 64bit App开发]: NSString类型与CFStringRef类型字符串相互转换.
  • Cursor 和Trae 产品使用及MCP应用
  • 【操作系统原理07】输入/输出系统
  • 部署mongodb三幅本集群
  • 02_值相同、类型不同,用 equals() 比较为什么是 false?
  • ipa包安装到apple手机上
  • 朝鲜派兵库尔斯克是否有助于解决乌克兰危机?外交部回应
  • 传智教育连续3个交易日跌停:去年净利润由盈转亏
  • 加总理:目前没有针对加拿大人的“活跃威胁”
  • 当隐身13年的北小京决定公开身份 ,专业戏剧评论依然稀缺
  • 原创话剧风向标!这个展演上《大宅门》《白鹿原》先后上演
  • 仲裁法修订草案二审稿拟增加规定规制虚假仲裁