当按下回车键时,React 如何防止表单提交
我有一个 React 搜索栏组件,父容器可以使用以下方式调用:
<SearchBar onInputChange={this.handleInputChange} />
每次用户更改输入时,父容器将收到通知。这就是为什么我的搜索栏不需要任何提交按钮。
然而,我发现如果我在搜索栏内按下回车键,整个页面都会刷新。而我不想要那样。
我知道如果在表单中有一个按钮,我可以调用 event.preventDefault() 方法。但在这种情况下,我没有按钮,所以我不知道该怎么做。
class SearchBar extends Component {
constructor(props) {
super(props);
this.state = { value: '' };
this.handleChange = this.handleChange.bind(this)
}
handleChange(e) {
this.setState({ value: e.target.value });
this.props.onInputChange(e.target.value);
}
render() {
return (
<div id="search-bar">
<form>
<FormGroup controlId="formBasicText">
<FormControl
type="text"
onChange={this.handleChange}
value={this.state.value}
placeholder="Enter Character Name"
/>
</FormGroup>
</form>
</div>
);
}
}
export default SearchBar