react如何清空input值
清空React中的Input值
在React中清空input值通常通过状态管理来实现。以下是几种常见方法:
使用受控组件方式
通过绑定value到state并更新state来清空:
import React, { useState } from 'react';
function ClearableInput() {
const [inputValue, setInputValue] = useState('');
const handleClear = () => {
setInputValue('');
};
return (
<div>
<input
value={inputValue}
onChange={(e) => setInputValue(e.target.value)}
/>
<button onClick={handleClear}>Clear</button>
</div>
);
}
使用非受控组件方式
通过ref直接操作DOM元素:
import React, { useRef } from 'react';
function ClearableInput() {
const inputRef = useRef(null);
const handleClear = () => {
inputRef.current.value = '';
};
return (
<div>
<input ref={inputRef} />
<button onClick={handleClear}>Clear</button>
</div>
);
}
表单提交后清空
处理表单提交时自动清空:
function FormExample() {
const [text, setText] = useState('');
const handleSubmit = (e) => {
e.preventDefault();
// 处理提交逻辑...
setText(''); // 清空输入框
};
return (
<form onSubmit={handleSubmit}>
<input
value={text}
onChange={(e) => setText(e.target.value)}
/>
<button type="submit">Submit</button>
</form>
);
}
使用Formik库处理表单
使用流行表单库Formik时:

import { Formik, Field, Form } from 'formik';
function FormikExample() {
return (
<Formik
initialValues={{ inputField: '' }}
onSubmit={(values, { resetForm }) => {
// 提交逻辑...
resetForm(); // 重置所有表单字段
}}
>
<Form>
<Field name="inputField" />
<button type="submit">Submit</button>
<button type="button" onClick={formikProps.resetForm}>
Clear
</button>
</Form>
</Formik>
);
}
选择哪种方法取决于具体场景和项目架构。受控组件方式是React推荐的做法,提供了更好的状态控制和数据流管理。






