【发布时间】:2019-07-22 23:06:28
【问题描述】:
我有下拉菜单、复选框、单选框、输入框。我的重置按钮重置除了输入文本框之外的所有控件,键入的单词不会重置。我的代码有什么问题?谢谢。 应用.js
import React, {Component} from 'react';
import Input from './Input';
Class App extends Component {
//get intial state
getInitialState = () => {
const initialState={
keyword:''
}
return initialState;
}
state= this.getInitialState();
//reset state
onReset=()=>{
this.setState(this.getInitialState());
}
componentDidMount(){
this.runSearch();
}
//call API
runSearch=async(keyword)=>{
//API CALL
});
//keywordsubmit
onKeywordSubmit=(keyword)=>{
this.setState({keyword:keyword});
this.runSearch(keyword.toUpperCase());
}
onReset=()=>{
this.setState(this.getInitialState());
}
render(){
return(
<div id="App">
<label>Input keyword:</label><Input onChange="" value={this.state.keyword} onSubmit={this.onKeywordSubmit} />
<input type="reset" value="Reset Search" onClick={this.onReset}>
</div>
)
}
}
Input.js 导入 React, {Component} from 'react';
class Input extends Component {
state={keyword:''};
//event onInputChange
onInputChange=(event)=>{
this.setState({keyword:event.target.value});
}
//event onKeywordSubmit
onKeywordSubmit=(event)=>{
event.preventDefault();
this.props.onSubmit(this.state.keyword);
}
render(){
return (
<form onSubmit={this.onKeywordSubmit}>
<input type="textbox" value={this.state.keyword} onChange={this.onInputChange} />
</form>
);
}
}
export default Input;
即使单击“重置”按钮,输入文本框搜索词也会保持不变。
【问题讨论】:
标签: reactjs