处理方法:
(1)html书写
form标签中去掉action参数,定义onSubmit方法,如下所示:
/** * 搜索框 组件 */ import React,{PureComponent} from 'react' import Styles from './index.less' import buttonimg from '../../assets/search_icon.png' class SearchBar extends PureComponent{ state = { searchkey: '' // 输入框的值 }; // 获取输入框的值 getSearchData(val){ this.setState({ searchkey: val }); } render(){ const {text} = this.props; const bg = { backgroundImage: `url(${buttonimg})`, } return ( <div className={Styles.custom_search}> <form onSubmit={(e) => this.props.getSearchTxt(e,this.state.searchkey)} className={Styles.form}> <input type="search" className={Styles.custom_search_input} placeholder={text} value={this.state.searchkey} onChange={(e) => this.getSearchData(e.target.value)} /> <button className={Styles.custom_search_button} style={bg}>搜索</button> </form> </div> ) } } export default SearchBar;
(2)事件处理
关键的是阻止掉页面默认提交:
// 获取搜索框输入内容 getSearchTxt(e,val){ e.preventDefault();//阻止页面提交刷新 // 请求安排人员数据 this.props.dispatch({ type:'getWorkArrangePersonsList', param: val }) }
.