You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React实现文本框内字符计数及父容器聚焦状态问题求助

React实现文本框内字符计数及父容器聚焦状态问题求助

各位开发者朋友好,我最近在尝试做一个“伪文本框”,想要把字符计数显示在文本框内部(类似常见的右下角展示输入字数的效果),但卡在了父容器的聚焦状态展示上,实在搞不定来求助!

我的实现思路是:用一个带文本框样式的父div,里面嵌套一个无样式的textarea,再加上字符计数的div,组合成这个伪文本框,结构大概是这样的:

<div> {/* 给父div设置textarea的样式 */}
  <textarea />
  <div style={{display: 'flex', justifyContent: 'flex-end'}}>{counter}/2000</div>
</div>

现在视觉上已经达到预期效果了,但问题是当点击textarea的时候,我想让父div也能显示出聚焦的视觉状态(比如边框变色)。我本来想用useRef钩子来让父div获得焦点,试了下却没效果:

const ref = useRef(null);

<div ref={ref}>
  <textarea onClick={() => ref.current.focus()} />
  {/* 字符计数div */}
</div>

我现在有点困惑,想请教下大家:div元素到底能不能触发聚焦状态呀?是不是我用错事件了?有没有其他办法能实现点击textarea时,让父容器展示出聚焦的视觉效果?

备注:内容来源于stack exchange,提问作者Valeriia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 10:15:27