【发布时间】:2019-03-01 10:30:10
【问题描述】:
我想使用 with 创建一个函数,我可以在不提交的情况下重置表单输入中的值。我尝试在 App Component (resetFormFields) 中创建该函数并将其通过 props 传递给 Form Component。当我想在 onSubmit (e.target.reset()) 上执行此操作时,这很简单,但是当我不得不在与表单不同的元素上执行此操作时却被卡住了。我可以在不将这些值添加到 state 的情况下这样做吗?
应用:
class App extends Component {
state = {
people: [],
formMessages: [],
person: null
};
handleFormSubmit = e => {
e.preventDefault();
const form = e.target;
const name = form.elements["name"].value;
const username = form.elements["username"].value;
this.addPerson(name, email);
form.reset();
};
resetFormFields = () => {
return;
}
render() {
return (
<div className="App">
<Form formSubmit={this.handleFormSubmit}
reset={this.resetFormFields} />
</div>
);
}
表格:
const Form = props => (
<form className={classes.Form}
id="form"
onSubmit={props.formSubmit}>
<input autoFocus
id="name"
type="text"
defaultValue=""
placeholder="Name..."
/>
<input
id="email"
type="text"
defaultValue=""
placeholder="Email..."
/>
<Button
btnType="Submit"
form="form"
type='submit'>
Submit
</Button>
<label onClick={props.reset}>Reset fields</label>
</form> );
【问题讨论】:
标签: javascript reactjs forms