
在 react 中,事件处理函数(如 onclick)执行后不会自动渲染其返回的 jsx,必须通过状态管理(如 usestate)触发组件重新渲染才能显示新内容。
在你提供的代码中,Letsee 是一个普通函数,当按钮被点击时,它确实会被调用,也会执行 console.log('Hii'),但它的返回值
Hii
并未被插入到组件的渲染树中——因为 onClick 只负责“执行函数”,并不接收或使用其返回的 JSX。✅ 正确做法是:利用 React 的响应式状态机制,通过 useState 控制 UI 的显隐。点击按钮时更新状态,触发组件重新渲染,从而有条件地展示
标签。
以下是修正后的完整示例:
import { useState } from 'react';
function Test1() {
const [showH1, setShowH1] = useState(false); // 初始化为 false,不显示 h1
return (
<>
{showH1 && Hii
} {/* 条件渲染:仅当 showH1 为 true 时显示 */}
>
);
}
export default Test1;? 关键要点说明:
- useState 是 React 提供的 Hook,用于在函数组件中添加本地状态;
- showH1 是布尔状态变量,决定
是否渲染;
- setShowH1(true) 是更新状态的方法,调用后 React 自动重运行 Test1 函数并重新渲染 DOM;
- 使用 && 进行条件渲染是简洁安全的方式(避免 null/undefined 渲染问题);
⚠️ 注意事项:
- 不要在 onClick 中直接调用渲染函数(如 onClick={Letsee}),这只会执行逻辑,无法影响 UI;
- 避免在事件处理中返回 JSX 期望它“自动出现”——React 的渲染必须由状态或 props 驱动;
- 若需点击后隐藏标题,可扩展为切换状态:onClick={() => setShowH1(!showH1)}。
掌握状态驱动渲染,是理解 React 数据流与 UI 同步的核心基础。










