useRef 定义的 ref 在控制台可以打印但是页面不生效?

useRef 是一个 React Hook,它能让你引用一个不需要渲染的值。

点击计时器

点击按钮后在控制台可以打印但是页面不生效。

useRef 返回的值在函数组件中不会自动触发重新渲染,所以控制台可以显示变化而按钮上无法显示 ref.current的变化。

js 复制代码
import { useRef } from "react";

const ClinkNumber = () => {
  let ref = useRef(0);

  function handleClick() {
    ref.current = ref.current + 1;
    // 每次触发函数会跟随变动 +1
    console.log(ref.current);
  }

  return (
    <div>
      // ref.current 不会跟随变动
      <button onClick={handleClick}>点击计时器 {ref.current}</button>
    </div>
  );
};

export default ClinkNumber;

解决这个问题的方法是使用 React 的状态管理来保存并更新计数器的值。

const [counter, setCounter] = useState(0);

相关推荐
可达鸭小栈9 小时前
易语言实现CSS像素文字生成器:无需字体文件渲染汉字
前端·css
fox_lht10 小时前
DBeaver的LightGrid 类所有函数详细分析
前端
钛态10 小时前
前端TypeScript高级技巧:让你的代码更安全
前端·vue·react·web
光影少年10 小时前
前端在页面渲染优化和组件优化经验?
前端·vue.js·react.js·前端框架
yqcoder10 小时前
CSS 迷思破解:`:nth-child` vs `:nth-of-type`
前端·css
时寒的笔记10 小时前
某陆飞11期_webpack案例
前端·webpack·node.js
漫游的渔夫10 小时前
前端开发者做多步 Agent:别让 AI 边想边乱跑,用 Plan-Act-Observe 稳住 4 步任务
前端·人工智能·typescript
武帝为此11 小时前
【Selenium 执行 JavaScript】
javascript·selenium·测试工具
一锤捌拾11 小时前
V8引擎精品漫游指南--Ignition篇(下 一) 动态执行前的事情
前端·javascript
遇见~未来11 小时前
第六篇_CSS进阶_深入浏览器与工程化
前端·css·rust