SearchBar 搜索栏

一般可位于 NavBar 下方,通过『取消按钮』退出激活状态。

规则

  • 应该在 placeholder 里提供提示文字,提醒用户输入相关内容,比如:双11特卖。

  • 在搜索栏下方,可提供有用的标签文案,帮助用户通过点击直接完成输入,比如:列出一些最近搜索的关键词。

代码演示

基本

  1. import { SearchBar, Button, WhiteSpace, WingBlank } from 'antd-mobile';
  2. class SearchBarExample extends React.Component {
  3. state = {
  4. value: '美食',
  5. focused: false,
  6. };
  7. onChange= (value) => {
  8. // console.log(value, 'onChange');
  9. this.setState({ value });
  10. };
  11. clear = () => {
  12. this.setState({ value: '' });
  13. };
  14. render() {
  15. return (<div>
  16. <WingBlank><div className="sub-title">普通</div></WingBlank>
  17. <SearchBar placeholder="搜索" maxLength={8} />
  18. <WhiteSpace />
  19. <WingBlank><div className="sub-title">自动获取光标,支付宝客户端有效</div></WingBlank>
  20. <SearchBar placeholder="自动获取光标,支付宝客户端有效" autoFocus />
  21. <WhiteSpace />
  22. <WingBlank><div className="sub-title">手动获取获取光标</div></WingBlank>
  23. <SearchBar
  24. placeholder="手动获取获取光标"
  25. focused={this.state.focused}
  26. onFocus={() => {
  27. this.setState({
  28. focused: false,
  29. });
  30. }}
  31. />
  32. <WhiteSpace />
  33. <WingBlank>
  34. <Button
  35. onClick={() => {
  36. this.setState({
  37. focused: true,
  38. });
  39. }}
  40. >点击获取光标</Button>
  41. </WingBlank>
  42. <WhiteSpace />
  43. <WingBlank><div className="sub-title">显示取消按钮</div></WingBlank>
  44. <SearchBar
  45. value={this.state.value}
  46. placeholder="搜索"
  47. onSubmit={value => console.log(value, 'onSubmit')}
  48. onClear={value => console.log(value, 'onClear')}
  49. onFocus={() => console.log('onFocus')}
  50. onBlur={() => console.log('onBlur')}
  51. onCancel={() => console.log('onCancel')}
  52. showCancelButton
  53. onChange={this.onChange}
  54. />
  55. </div>);
  56. }
  57. }
  58. ReactDOM.render(<SearchBarExample />, mountNode);
  1. .am-search {
  2. border-bottom: 1px solid #ddd;
  3. }
  4. .sub-title {
  5. color: #888;
  6. font-size: .28rem;
  7. padding: 30px 0 18px 0;
  8. }

SearchBar搜索栏 - 图1

API

适用平台:WEB、React-Native
属性说明类型默认值
defaultValue搜索框的默认值String
value搜索框的当前值String
placeholderplaceholderString
onSubmitsubmit 事件 (点击键盘的 enter)(val: string): void
onChangechange 事件的回调(val: string): void
onFocusfocus 事件的回调(): void
onBlurblur 事件的回调(): void
onCancel点击取消按钮触发 (不再自动清除输入框的文字)(val: string): void
showCancelButton是否一直显示取消按钮boolfalse
cancelText定制取消按钮的文字String取消
disabled设置禁用boolfalse
onClear(web only)点击 clear 图标触发(val: string): void
autoFocus(web only)页面初始化时SearchBar自动获取光标, 每个页面只有一个SearchBarautoFocus会生效 (不保证兼容所有浏览器,目前只支付宝客户端支持)boolfalse
focused(web only)手动聚焦 SearchBar (在focused设置为 true 后,需要在onFocus或者onBlur时再次将该属性设置为 false )boolfalse
maxLength(web only)最多允许输入的字符个数number-
注:RN 版本更多 API 请参考 http://facebook.github.io/react-native/docs/textinput.html