SearchBar 搜索栏


可用于用户输入搜索信息

使用指南

Taro-UI 版本需要在 v1.3.1 以上,在 Taro 文件中引入组件

  1. import { AtSearchBar } from 'taro-ui'

组件依赖的样式文件(仅按需引用时需要)

  1. @import "~taro-ui/dist/style/components/search-bar.scss";
    @import "~taro-ui/dist/style/components/button.scss";
    @import "~taro-ui/dist/style/components/icon.scss";

一般用法

说明:

  • 由于微信开发者工具的问题,Input 的 placeholder 在 value 存在的情况下,会出现重叠,在真机上不会出现此问题,可以忽略

  • 该组件为受控组件,开发者需要通过 onChange 事件来更新 value 值变化,value 与 onChange 函数必填

  • 由于此组件是基于小程序的 Input 进行封装,该组件是原生组件,使用前请阅读使用限制

  1. import Taro from '@tarojs/taro'
    import { AtSearchBar } from 'taro-ui'
    export default class Index extends Taro.Component {
    constructor () {
    super(...arguments)
    this.state = {
    value: ''
    }
    }
    onChange (value) {
    this.setState({
    value: value
    })
    }
    render () {
    return (
    <AtSearchBar
    value={this.state.value}
    onChange={this.onChange.bind(this)}
    />
    )
    }
    }

自定义按钮文字和点击事件

  1. import Taro from '@tarojs/taro'
    import { AtSearchBar } from 'taro-ui'
    export default class Index extends Taro.Component {
    constructor () {
    super(...arguments)
    this.state = {
    value: ''
    }
    }
    onChange (value) {
    this.setState({
    value: value
    })
    }
    onActionClick () {
    console.log('开始搜索')
    }
    render () {
    return (
    <AtSearchBar
    actionName='搜一下'
    value={this.state.value}
    onChange={this.onChange.bind(this)}
    onActionClick={this.onActionClick.bind(this)}
    />
    )
    }
    }

一直显示按钮

  1. import Taro from '@tarojs/taro'
    import { AtSearchBar } from 'taro-ui'
    export default class Index extends Taro.Component {
    constructor () {
    super(...arguments)
    this.state = {
    value: ''
    }
    }
    onChange (value) {
    this.setState({
    value: value
    })
    }
    onActionClick () {
    console.log('开始搜索')
    }
    render () {
    return (
    <AtSearchBar
    showActionButton
    value={this.state.value}
    onChange={this.onChange.bind(this)}
    onActionClick={this.onActionClick.bind(this)}
    />
    )
    }
    }

自定义输入框类型

  1. import Taro from '@tarojs/taro'
    import { AtSearchBar } from 'taro-ui'
    export default class Index extends Taro.Component {
    constructor () {
    super(...arguments)
    this.state = {
    value: ''
    }
    }
    onChange (value) {
    this.setState({
    value: value
    })
    }
    onActionClick () {
    console.log('开始搜索')
    }
    render () {
    return (
    <AtSearchBar
    inputType='number'
    value={this.state.value}
    onChange={this.onChange.bind(this)}
    onActionClick={this.onActionClick.bind(this)}
    />
    )
    }
    }

参数

参数微信小程序h5说明类型可选值默认值
value必填,输入框当前值,开发者需要通过 onChange 事件来更新 value 值String--
placeholder占位符String--
maxLength最大长度Number-140
fixed是否固定顶部Boolean-false
focus是否聚焦Boolean-false
disabled是否禁止输入Boolean-false
showActionButton是否一直显示右侧按钮Boolean-false
actionName右侧按钮文案String-'搜索'
inputType输入框输入类型String'text', 'number', 'idcard', 'digit''text'

事件

事件名称微信小程序h5说明返回参数
onChange输入框值改变时触发的事件,开发者需要通过 onChange 事件来更新 value 值变化,onChange 函数必填(value:string, event:Object) => void
onFocus输入框聚焦时触发,height 参数在基础库 1.9.90 起支持(event:Object) => void
onClear点击清除按钮时触发事件,若不传,则默认传空字符串调用 onChange 函数,Taro UI 2.0.3 起支持() => void
onBlur输入框值失去焦点时触发的事件() => void
onConfirmx点击完成按钮时触发。H5 版中目前需借用 Form 组件的onSubmit事件来替代() => void
onActionClick右侧按钮点击触发事件() => void

SearchBar搜索栏 - 图1