Button
Button 按钮
代码示例
import { BfButton } from '@bud-fe/react-taro-ui';import { View } from '@tarojs/components';import React from 'react';export default () => {return (<><View className="group-title">基础用法</View><BfButton>default</BfButton><BfButton type="primary">primary</BfButton><BfButton loading>default loading</BfButton><View className="group-title">size="mini"</View><BfButton size="mini">default mini</BfButton><BfButton type="primary" size="mini">primary mini</BfButton><BfButton loading type="primary" size="mini">primary mini loading</BfButton><BfButton size="mini" plain>default mini</BfButton><BfButton type="primary" size="mini" plain>primary mini plain</BfButton><BfButton loading type="primary" size="mini" plain>primary mini plain loading</BfButton><View className="group-title">size="mini" disabled</View><BfButton size="mini" disabled>default mini disabled</BfButton><BfButton type="primary" size="mini" disabled>primary mini disabled</BfButton><BfButton size="mini" plain disabled>default mini plain disabled</BfButton><BfButton type="primary" size="mini" plain disabled>primary mini plain disabled</BfButton></>);};
API
| Name | Description | Type | Default |
|---|---|---|---|
| type | 按钮类型 | "default" | "primary" | default |
| children | 按钮包含的内容 | ReactNode | -- |
| debounceTime | 点击事件的防抖时间(单位 ms)。默认不防抖 | number | -- |
| size | 按钮的大小 @supported weapp, alipay, swan, tt, qq, jd, h5, rn | keyof Size | default |
| plain | 按钮是否镂空,背景色透明 @supported weapp, alipay, swan, qq, jd, h5, rn | boolean | false |
| disabled | 是否禁用 @supported weapp, alipay, swan, tt, qq, jd, h5, rn | boolean | false |
| loading | 名称前是否带 loading 图标 @supported weapp, alipay, swan, tt, qq, jd, h5, rn | boolean | false |
| formType | 用于 `<form/>` 组件,点击分别会触发 `<form/>` 组件的 submit/reset 事件 @supported weapp, alipay, swan, tt, qq, jd | keyof FormType | -- |
| openType | 微信开放能力 @supported weapp, alipay, swan, tt, qq, jd | OpenType | -- |
| hoverClass | 指定按下去的样式类。当 `hover-class="none"` 时,没有点击态效果 @supported weapp, alipay, swan, tt, qq, jd, h5, rn @rn 支持 hoverStyle 属性,但框架未支持 hoverClass | string | button-hover |
| hoverStyle | 由于 RN 不支持 hoverClass,故 RN 端的 Button 组件实现了 `hoverStyle`属性,写法和 style 类似,只不过 `hoverStyle` 的样式是指定按下去的样式。 @supported rn | StyleProp<ViewStyle> | none |
| hoverStopPropagation | 指定是否阻止本节点的祖先节点出现点击态 @supported weapp, alipay, swan, tt, qq, jd | boolean | false |
| hoverStartTime | 按住后多久出现点击态,单位毫秒 @supported weapp, alipay, swan, tt, qq, jd, h5, rn | number | 20 |
| hoverStayTime | 手指松开后点击态保留时间,单位毫秒 @supported weapp, alipay, swan, tt, qq, jd, h5, rn | number | 70 |
| lang | 指定返回用户信息的语言,zh_CN 简体中文,zh_TW 繁体中文,en 英文。 生效时机: `open-type="getUserInfo"` @supported weapp, qq, jd | keyof Lang | -- |
| sessionFrom | 会话来源 生效时机:`open-type="contact"` @supported weapp | string | -- |
| sendMessageTitle | 会话内消息卡片标题 生效时机:`open-type="contact"` @supported weapp | string | 当前标题 |
| sendMessagePath | 会话内消息卡片点击跳转小程序路径 生效时机:`open-type="contact"` @supported weapp | string | 当前标题 |
| sendMessageImg | 会话内消息卡片图片 生效时机:`open-type="contact"` @supported weapp | string | 截图 |
| appParameter | 打开 APP 时,向 APP 传递的参数 生效时机:`open-type="launchApp"` @supported weapp, qq, jd | string | -- |
| scope | 支付宝小程序 scope 生效时机:`open-type="getAuthorize"` @supported alipay | "userInfo" | "phoneNumber" | -- |
| showMessageCard | 显示会话内消息卡片 生效时机:`open-type="contact"` | boolean | false |
| publicId | 生活号 id,必须是当前小程序同主体且已关联的生活号,open-type="lifestyle" 时有效。 @supported alipay, qq | string | -- |
| templateId | 发送订阅类模板消息所用的模板库标题 ID ,可通过 getTemplateLibraryList 获取 当参数类型为 Array 时,可传递 1~3 个模板库标题 ID @supported swan | string | string[] | -- |
| subscribeId | 发送订阅类模板消息时所使用的唯一标识符,内容由开发者自定义,用来标识订阅场景 注意:同一用户在同一 subscribe-id 下的多次授权不累积下发权限,只能下发一条。若要订阅多条,需要不同 subscribe-id @supported swan | string | -- |
| groupId | 打开群资料卡时,传递的群号 @supported qq | string | -- |
| guildId | 打开频道页面时,传递的频道号 @supported qq | string | -- |
| shareType | 分享类型集合,请参考下面share-type有效值说明。share-type后续将不再维护,请更新为share-mode @supported qq | string | 27 |
| shareMode | 分享类型集合,请参考下面share-mode有效值说明 @supported qq | string | ['qq', 'qzone'] |
| ariaLabel | 无障碍访问,(属性)元素的额外描述 @supported qq | string | -- |
| openId | 添加好友时,对方的 openid @supported qq | string | -- |
| shareMessageFriendInfo | 发送对象的 FriendInfo @supported qq | string | -- |
| shareMessageTitle | 转发标题,不传则默认使用当前小程序的昵称。 FriendInfo @supported qq | string | -- |
| shareMessageImg | 转发显示图片的链接,可以是网络图片路径(仅 QQ CDN 域名路径)或本地图片文件路径或相对代码包根目录的图片文件路径。显示图片长宽比是 5:4FriendInfo @supported qq | string | -- |
| onGetUserInfo | 用户点击该按钮时,会返回获取到的用户信息,回调的detail数据与 Taro.getUserInfo 返回的一致 生效时机: `open-type="getUserInfo"` @supported weapp, alipay, swan, qq, jd | CommonEventFunction<onGetUserInfoEventDetail> | -- |
| onGetAuthorize | 支付宝获取会员基础信息授权回调 生效时机:`open-type="getAuthorize"` @supported alipay | CommonEventFunction<any> | -- |
| onContact | 客服消息回调 生效时机:`open-type="contact"` @supported weapp, swan, qq | CommonEventFunction<onContactEventDetail> | -- |
| onGetPhoneNumber | 获取用户手机号回调 生效时机:`open-type="getphonenumber"` @supported weapp, alipay, swan, tt, jd | CommonEventFunction<onGetPhoneNumberEventDetail> | -- |
| onError | 当使用开放能力时,发生错误的回调 生效时机:`open-type="launchApp"` @supported weapp, alipay, qq, jd | CommonEventFunction<any> | -- |
| onOpenSetting | 在打开授权设置页后回调 生效时机:`open-type="openSetting"` @supported weapp, swan, qq, jd | CommonEventFunction<onOpenSettingEventDetail> | -- |
| onLaunchApp | 打开 APP 成功的回调 生效时机:`open-type="launchApp"` @supported weapp, qq | CommonEventFunction<any> | -- |
| onChooseAvatar | 获取用户头像回调 生效时机:`open-type="chooseAvatar"` @supported weapp | CommonEventFunction<any> | -- |
| onTap | 点击。 说明: 每点击一次会触发一次事件,建议自行使用代码防止重复点击,可以使用 js 防抖和节流实现。 @supported alipay | CommonEventFunction<any> | -- |
| onFollowLifestyle | 当 open-type 为 lifestyle 时有效。 当点击按钮时触发。 event.detail = { followStatus },followStatus 合法值有 1、2、3,其中 1 表示已关注。2 表示用户不允许关注。3 表示发生未知错误; 已知问题:基础库 1.0,当用户在点击按钮前已关注生活号,event.detail.followStatus 的值为 true。 @supported alipay | CommonEventFunction<{ followStatus: true | 1 | 2 | 3; }> | -- |
| onChooseAddress | 用户点击该按钮时,调起用户编辑收货地址原生界面,并在编辑完成后返回用户选择的地址,从返回参数的 detail 中获取,和 swan.chooseAddress 一样的。和 open-type 搭配使用,使用时机:open-type="chooseAddress" @supported swan | CommonEventFunction<any> | -- |
| onChooseInvoiceTitle | 用户点击该按钮时,选择用户的发票抬头,和 swan.chooseInvoiceTitle 一样的。和 open-type 搭配使用,使用时机:open-type="chooseInvoiceTitle" @supported swan | CommonEventFunction<any> | -- |
| onLogin | 登录回调,和 open-type 搭配使用,使用时机:open-type="login"。可以通过返回参数的 detail 判断是否登录成功,当 errMsg 为'login:ok'时即为成功。如想获取登录凭证请使用 swan.getLoginCode @supported swan | CommonEventFunction<any> | -- |
| onSubscribe | 订阅消息授权回调,和 open-type 搭配使用,使用时机:open-type="subscribe" @supported swan | CommonEventFunction<any> | -- |
| onAddFriend | 添加好友的回调 @supported qq | CommonEventFunction<any> | -- |
| onAddGroupApp | 添加群应用的回调。errCode 错误码:41004(当前用户非管理员或群主,无权操作),41005(超过可添加群应用的群数量) @supported qq | CommonEventFunction<any> | -- |
| id | 组件的唯一标示, 保持整个页面唯一 | string | -- |
| className | 同 `class`,在 React/Nerv 里一般使用 `className` 作为 `class` 的代称 | string | -- |
| style | 组件的内联样式, 可以动态设置的内联样式 | string | CSSProperties | -- |
| key | 如果列表中项目的位置会动态改变或者有新的项目添加到列表中, 需要使用 `wx:key` 来指定列表中项目的唯一的标识符。 | string | number | -- |
| hidden | 组件是否显示, 所有组件默认显示 | boolean | -- |
| animation | 动画属性 | any | -- |
| ref | 引用 | LegacyRef<any> | -- |
| dangerouslySetInnerHTML | 渲染 HTML @see /docs/html | { __html: string; } | -- |
| onTouchStart | 手指触摸动作开始 | (event: ITouchEvent) => void | -- |
| onTouchMove | 手指触摸后移动 | (event: ITouchEvent) => void | -- |
| onTouchCancel | 手指触摸动作被打断,如来电提醒,弹窗 | (event: ITouchEvent) => void | -- |
| onTouchEnd | 手指触摸动作结束 | (event: ITouchEvent) => void | -- |
| onClick | 手指触摸后马上离开 | (event: ITouchEvent) => void | -- |
| onLongPress | 手指触摸后,超过350ms再离开,如果指定了事件回调函数并触发了这个事件,tap事件将不被触发 | (event: CommonEvent<any>) => void | -- |
| onLongClick | 手指触摸后,超过350ms再离开(推荐使用 longpress 事件代替) | (event: CommonEvent<any>) => void | -- |
| onTransitionEnd | 会在 WXSS transition 或 Taro.createAnimation 动画结束后触发 | (event: CommonEvent<any>) => void | -- |
| onAnimationStart | 会在一个 WXSS animation 动画开始时触发 | (event: CommonEvent<any>) => void | -- |
| onAnimationIteration | 会在一个 WXSS animation 一次迭代结束时触发 | (event: CommonEvent<any>) => void | -- |
| onAnimationEnd | 会在一个 WXSS animation 动画完成时触发 | (event: CommonEvent<any>) => void | -- |
| onTouchForceChange | 在支持 3D Touch 的 iPhone 设备,重按时会触发 | (event: CommonEvent<any>) => void | -- |