import React, { PureComponent } from "react" import { SearchBar } from "antd-mobile" import { withRouter } from "react-router-dom" import classnames from "classnames" import "./search_header.scss" class SearchHead extends PureComponent { state = { isFocus: false, } returnPage = () => { this.props.history.go(-1) } componentDidMount() { this.refs.search.focus() } search = () => { this.storeKeyword() this.props.handleSearch() } storeKeyword = () => { const { searchHistory = [], value } = this.props const data = searchHistory.some((item) => item === value) ? searchHistory : searchHistory.concat([value]) // value && localStorage.setItem('searchHistory', JSON.stringify([...searchHistory, value])) localStorage.setItem("searchHistory", JSON.stringify(data)) } changeFontColor = (isFocus) => { this.setState({ isFocus, }) } render() { const { isFocus } = this.state const cls = classnames("submit-btn", { "submit-btn--active": isFocus }) return ( <div className="search-head" style={this.props.style} ref={this.props.forwardedRef} > <div className="left" onClick={this.returnPage}> <i className="iconfont iconiconfront-68" /> </div> <div className="center"> <SearchBar value={this.props.value} showCancelButton cancelText={" "} ref="search" focus={true} onChange={this.props.handleChange} placeholder="搜索课程" onFocus={() => this.changeFontColor(true)} onBlur={() => this.changeFontColor(false)} onSubmit={this.search} /> </div> <div className="right right-btn" onClick={this.search}> <div className={cls}>搜索</div> </div> </div> ) } } export default withRouter(SearchHead)