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

如何在React.js中使用useState重置输入标签

React 重置姓名输入框状态实现方案

你的代码里有两个问题导致重置功能失效:

  1. 你写的resetName函数直接操作DOM元素的value,这不符合React的状态管理逻辑——React里UI是由状态驱动的,应该通过更新状态来修改输入框内容,而不是直接操作DOM。
  2. 按钮绑定事件的方式错误,你用了value={resetName},这根本不会触发点击事件,得用onClick属性。

下面是修改后的完整代码:

import { useState } from "react";

export default function Test() {
  const [firstName, setFirstName] = useState("");
  const [lastName, setLastName] = useState("");

  const fullName = `${firstName} ${lastName}`;

  // 把重置函数放到组件内部,直接调用状态更新方法
  const resetName = () => {
    setFirstName("");
    setLastName("");
  };

  return (
    <div>
      First Name:
      <input
        value={firstName}
        onChange={(e) => setFirstName(e.target.value)}
      />{" "}
      <br />
      Last Name:{" "}
      <input
        value={lastName}
        onChange={(e) => setLastName(e.target.value)}
      />{" "}
      <br />
      {fullName}
      <br />
      {/* 用onClick绑定重置函数 */}
      <button onClick={resetName}>Reset!</button>
    </div>
  );
}

关键修改点说明:

  • 把resetName函数移到Test组件内部,这样它能直接访问组件里的setFirstName和setLastName方法。
  • 重置函数里直接调用这两个状态更新方法,把值设为空字符串,React会自动更新输入框的内容。
  • 按钮的属性改成onClick={resetName},这样点击按钮时就会触发重置逻辑。

内容的提问来源于stack exchange,提问作者Carlos

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 02:06:27