SearchBar 搜索栏
一般可位于 NavBar 下方,通过『取消按钮』退出激活状态。规则
应该在 placeholder 里提供提示文字,提醒用户输入相关内容,比如:双11特卖。
在搜索栏下方,可提供有用的标签文案,帮助用户通过点击直接完成输入,比如:列出一些最近搜索的关键词。
代码演示
import { SearchBar, Button, WhiteSpace, WingBlank } from 'antd-mobile';
class SearchBarExample extends React.Component {
state = {
value: '美食',
focused: false,
};
onChange= (value) => {
// console.log(value, 'onChange');
this.setState({ value });
};
clear = () => {
this.setState({ value: '' });
};
render() {
return (<div>
<WingBlank><div className="sub-title">普通</div></WingBlank>
<SearchBar placeholder="搜索" maxLength={8} />
<WhiteSpace />
<WingBlank><div className="sub-title">自动获取光标,支付宝客户端有效</div></WingBlank>
<SearchBar placeholder="自动获取光标,支付宝客户端有效" autoFocus />
<WhiteSpace />
<WingBlank><div className="sub-title">手动获取获取光标</div></WingBlank>
<SearchBar
placeholder="手动获取获取光标"
focused={this.state.focused}
onFocus={() => {
this.setState({
focused: false,
});
}}
/>
<WhiteSpace />
<WingBlank>
<Button
onClick={() => {
this.setState({
focused: true,
});
}}
>点击获取光标</Button>
</WingBlank>
<WhiteSpace />
<WingBlank><div className="sub-title">显示取消按钮</div></WingBlank>
<SearchBar
value={this.state.value}
placeholder="搜索"
onSubmit={value => console.log(value, 'onSubmit')}
onClear={value => console.log(value, 'onClear')}
onFocus={() => console.log('onFocus')}
onBlur={() => console.log('onBlur')}
onCancel={() => console.log('onCancel')}
showCancelButton
onChange={this.onChange}
/>
</div>);
}
}
ReactDOM.render(<SearchBarExample />, mountNode);
.am-search {
border-bottom: 1px solid #ddd;
}
.sub-title {
color: #888;
font-size: .28rem;
padding: 30px 0 18px 0;
}
API
适用平台:WEB、React-Native属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
defaultValue | 搜索框的默认值 | String | |
value | 搜索框的当前值 | String | |
placeholder | placeholder | String | |
onSubmit | submit 事件 (点击键盘的 enter) | (val: string): void | |
onChange | change 事件的回调 | (val: string): void | |
onFocus | focus 事件的回调 | (): void | |
onBlur | blur 事件的回调 | (): void | |
onCancel | 点击取消 按钮触发 (不再自动清除输入框的文字) | (val: string): void | |
showCancelButton | 是否一直显示取消 按钮 | bool | false |
cancelText | 定制取消 按钮的文字 | String | 取消 |
disabled | 设置禁用 | bool | false |
onClear(web only ) | 点击 clear 图标触发 | (val: string): void | |
autoFocus(web only ) | 页面初始化时SearchBar 自动获取光标, 每个页面只有一个SearchBar 的autoFocus 会生效 (不保证兼容所有浏览器,目前只支付宝客户端支持) | bool | false |
focused(web only ) | 手动聚焦 SearchBar (在focused 设置为 true 后,需要在onFocus 或者onBlur 时再次将该属性设置为 false ) | bool | false |
maxLength(web only ) | 最多允许输入的字符个数 | number | - |