React 中点击按钮动态显示 h1 标签的正确实现方法
技术百科
聖光之護
发布时间:2026-01-28
浏览: 次 本文详解为何直接在 onclick 中调用返回 jsx 的函数无法渲染内容,并通过 usestate 实现点击后动态显示标题的规范做法。
在 React 中,onClick 事件处理器的作用是响应用户交互并执行逻辑,但它不会自动将函数的返回值(如 JSX)插入到 DOM 中。你最初的代码中:
const Letsee = () => {
return (
<>
Hii
{console.log('Hii')}
>
);
};
function Test1() {
return (
<>
>
);
}虽然点击按钮时 Letsee 确实被执行(控制台会输出 'Hii'),但其返回的
Hii
并未被任何组件“接收”或“渲染”——它只是被丢弃了。React 的渲染机制要求 JSX 必须作为组件 return 的一部分,才能被 React 渲染器识别并挂载到页面。✅ 正确做法是:使用 React 的状态(useState)控制 UI 的条件渲染。当用户点击按钮时,更新状态,触发组件重新渲染,从而有条件地展示
。
以下是推荐的实现方式:
import { useSt
ate } from 'react';
function Test1() {
const [showH1, setShowH1] = useState(false);
return (
<>
{showH1 && Hii
}
>
);
}
export default Test1;? 关键要点说明:
- useState(false) 初始化一个布尔状态 showH1,表示
是否应显示;
- {showH1 &&
Hii
} 是条件渲染的常用写法:仅当 showH1 为 true 时,JSX 才会被渲染; - onClick={() => setShowH1(true)} 使用箭头函数确保状态更新逻辑被正确调用(避免直接写 onClick={setShowH1(true)} —— 这会导致组件初始化时就执行);
⚠️ 注意事项:
- 不要在事件处理函数中直接返回 JSX 期望它“自动显示”,React 不支持这种命令式 DOM 插入;
- 避免在 onClick 中调用无状态副作用函数(如仅返回 JSX 的 Letsee),除非该函数用于触发状态变更、API 请求等有实际副作用的操作;
- 若需复用逻辑,可将状态更新封装为独立函数,但渲染逻辑仍必须保留在组件的 return 中。
掌握状态驱动渲染,是理解 React 声明式 UI 的核心一步。从“点击即显示”开始,你已迈出了构建交互式界面的关键一步。
# 时就
# 但它
# 可将
# 才会
# 未被
# 这会
# 不支持
# ui
# js
# 事件
# 封装
# 返回值
# 处理器
# dom
# 但其
# 布尔
# react
相关栏目:
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
AI推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
SEO优化<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
技术百科<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
谷歌推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
百度推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
网络营销<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
案例网站<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
精选文章<?muma echo $count; ?>
】
相关推荐
- Win10如何卸载自带Edge_Win10彻底卸载
- Python对象生命周期管理_创建销毁解析【教程】
- Windows10蓝屏代码DPC_WATCHDOG
- LINUX怎么设置系统语言_LINUX修改中文环境
- php485返回空数组怎么回事_php485数据接
- Windows7如何安装系统镜像_Windows7
- 如何使用Golang实现微服务状态监控_Golan
- Win11如何设置电源计划_Win11电源计划优化
- Win10闹钟铃声怎么自定义 Win10闹钟自定义
- 如何将竖排文本文件转换为横排字符串
- Python网络超时处理_健壮性设计说明【指导】
- C#如何序列化对象为XML XmlSerializ
- Python音视频处理高级项目教程_FFmpegP
- 企业SEO优化选择网站建设模板的技巧
- 如何在 Go 同包不同文件中正确引用结构体
- Python大型项目拆分策略_模块化解析【教程】
- Win11如何设置开机自动联网 Win11宽带连接
- c++如何获取map中所有的键_C++遍历键值对提
- C#怎么创建控制台应用 C# Console Ap
- Python包结构设计_大型项目组织解析【指导】
- Python对象生命周期管理_创建销毁说明【指导】
- Win11怎么更改鼠标指针方案_Windows11
- Win11怎么开启上帝模式_创建Windows 1
- Win11鼠标灵敏度怎么调 Win11鼠标指针移动
- Win10如何卸载WindowsDefender_
- 如何理解Go指针和内存分配关系_Go Pointe
- PHP怎么接收URL中的锚点参数_获取#后面参数值
- c++怎么使用std::tuple存储多元组数据_
- Drupal 中 HTML 链接被双重转义导致渲染
- Win10 BitLocker加密教程 Win10
- Win11怎么设置任务栏图标大小_Windows1
- mac怎么右键_MAC鼠标右键设置与触控板手势技巧
- 如何使用Golang log记录不同级别日志_Go
- php中常量能用::访问吗_类常量与作用域操作符使
- php本地部署后数据库连接报错_1045acces
- Win10怎样卸载TeamViewer_Win10
- windows如何备份注册表_windows导出和
- Windows笔记本无法进入睡眠模式怎么办?(电源
- 如何用正则与预处理高效拦截带干扰符的恶意域名
- Win11怎么关闭触控板_Win11笔记本禁用触摸
- Go 语言标准库为何不提供泛型 Contains
- mac怎么安装adb_MAC配置Android A
- php修改数据怎么批量改状态_批量更新status
- WindowsUSB驱动安装异常怎么办_USB驱动
- php下载安装后memory_limit怎么设置_
- 微信里的php文件怎么变mp4_微信接收php转m
- Win10系统字体模糊怎么办_Windows10高
- Python函数接口稳定性_版本演进解析【指导】
- c++ reinterpret_cast怎么用 c
- php在Linux怎么部署_LNMP环境搭建PHP


QQ客服