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

React.js中单个onClick点击事件同时触发两个动作的实现问题

问题原因

你使用的文本框是React受控组件,value属性完全绑定状态userInput,直接通过原生DOM API修改输入框值的操作不符合受控组件的使用规范:
调用setSearchStu会触发组件重渲染,React会读取当前userInput的最新值覆盖DOM的内容,因此你手动修改的空值会被原有状态冲掉。而去掉setSearchStu时没有触发组件重渲染,所以DOM修改的结果能暂时保留。

解决方案

不要直接操作DOM修改输入框值,直接更新绑定的userInput状态即可:

<input
  type="submit"
  value="Reset"
  onClick={() => {
    setSearchStu(student);
    setUserInput(''); // 直接更新绑定状态实现清空输入框
  }}
/>

受控组件的所有视图变更都应该通过React状态更新来完成,才能保证状态和视图的一致性。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 07:54:00