Badge 徽标数
注:
- 这是个包裹组件,需要
slot
中提供被挂在的内容。
import { TaRow, TaCol, TaIcon, TaGroup, TaBadge, TaSwitch } from '@/index'
import { useState } from 'react'
export default function ExpBadge() {
const [count, setCount] = useState(0)
const [count2, setCount2] = useState(0)
function onSwitch(checked: boolean) {
setCount(checked ? 1000 : 0)
}
function onSwitch2(checked: boolean) {
setCount2(checked ? 1000 : 0)
}
return (
<>
<TaGroup title="基础用法">
<div className="exp-badge-flex">
<TaRow gutter={[16, 16]}>
<TaCol span="6">
<TaBadge content={1}>
{' '}
<div className="exp-badge-slot"></div>{' '}
</TaBadge>
</TaCol>
<TaCol span="6">
<TaBadge content={99}>
<div className="exp-badge-slot"></div>
</TaBadge>
</TaCol>
</TaRow>
</div>
</TaGroup>
<TaGroup title="小红点">
<div className="exp-badge-flex">
<TaRow gutter={[16, 16]}>
<TaCol span="6">
<TaBadge content={1} dot>
<div className="exp-badge-slot"></div>
</TaBadge>
</TaCol>
</TaRow>
</div>
</TaGroup>
<TaGroup title="图标 renderBadge">
<div className="exp-badge-flex">
<TaRow gutter={[16, 16]}>
<TaCol span="6">
<TaBadge
content={1}
renderBadge={() => <TaIcon icon="CheckOutlined" />}
>
<div className="exp-badge-slot"></div>
</TaBadge>
</TaCol>
</TaRow>
</div>
</TaGroup>
<TaGroup title="文本">
<div className="exp-badge-flex">
<TaRow gutter={[16, 16]}>
<TaCol span="6">
<TaBadge content="惠">
{' '}
<div className="exp-badge-slot"></div>{' '}
</TaBadge>
</TaCol>
<TaCol span="6">
<TaBadge content="热">
{' '}
<div className="exp-badge-slot"></div>{' '}
</TaBadge>
</TaCol>
</TaRow>
</div>
</TaGroup>
<TaGroup title="自定义颜色">
<div className="exp-badge-flex">
<TaRow gutter={[16, 16]}>
<TaCol span="6">
<TaBadge content={99} color="#6667AB">
<div className="exp-badge-slot"></div>
</TaBadge>
</TaCol>
<TaCol span="6">
<TaBadge content={1} dot color="#6667AB">
<div className="exp-badge-slot"></div>
</TaBadge>
</TaCol>
<TaCol span="6">
<TaBadge
content={1}
color="#E2C0BF"
renderBadge={() => <TaIcon icon="CheckOutlined" />}
>
<div className="exp-badge-slot"></div>
</TaBadge>
</TaCol>
<TaCol span="6">
<TaBadge content="惠" color="#E2C0BF">
<div className="exp-badge-slot"></div>
</TaBadge>
</TaCol>
</TaRow>
</div>
</TaGroup>
<TaGroup title="限制最大数">
<div className="exp-badge-flex">
<TaRow gutter={[16, 16]}>
<TaCol span="6">
<TaBadge content={1000} maxCount="9">
<div className="exp-badge-slot"></div>
</TaBadge>
</TaCol>
<TaCol span="6">
<TaBadge content={1000} maxCount="10">
<div className="exp-badge-slot"></div>
</TaBadge>
</TaCol>
<TaCol span="6">
<TaBadge content={1000} maxCount="99">
<div className="exp-badge-slot"></div>
</TaBadge>
</TaCol>
</TaRow>
</div>
</TaGroup>
<TaGroup title="展示 0">
<div className="exp-badge-flex">
<TaRow gutter={[16, 16]}>
<TaCol span="6">
<TaBadge content={0} showZero>
<div className="exp-badge-slot"></div>
</TaBadge>
</TaCol>
<TaCol span="6">
<TaBadge content={0} dot showZero>
<div className="exp-badge-slot"></div>
</TaBadge>
</TaCol>
</TaRow>
</div>
</TaGroup>
<TaGroup title="偏移">
<div className="exp-badge-flex">
<TaRow gutter={[16, 16]}>
<TaCol span="6">
<TaBadge content={1} offset={[10, -10]}>
<div className="exp-badge-slot"></div>
</TaBadge>
</TaCol>
<TaCol span="6">
<TaBadge content={1} dot offset={[-20, 20]}>
<div className="exp-badge-slot"></div>
</TaBadge>
</TaCol>
</TaRow>
</div>
</TaGroup>
<TaGroup title="展示动画">
<div className="exp-badge-flex">
<TaRow gutter={[16, 16]}>
<TaCol span="6">
<TaBadge content={count} showZero animated>
<div className="exp-badge-slot"></div>
</TaBadge>
</TaCol>
<TaCol span="6">
<TaSwitch onChange={onSwitch} />
</TaCol>
</TaRow>
<TaRow gutter={[16, 16]}>
<TaCol span="6">
<TaBadge content={count2} dot animated>
<div className="exp-badge-slot"></div>
</TaBadge>
</TaCol>
<TaCol span="6">
<TaSwitch onChange={onSwitch2} />
</TaCol>
</TaRow>
</div>
</TaGroup>
</>
)
}
Import
import { TaBadge } from 'tantalum-ui-mobile-react'
具体的引入方式可以参考引入组件。
Props
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
content | number | string | 0 | 否 | 消息条数或者文本 |
maxCount | number | string | 99 | 否 | 最大完全显示消息条数 |
dot | boolean | false | 否 | 是否显示为小红点 |
showZero | boolean | false | 否 | 消息数为 0 时是否显示 |
offset | number[] | [0, 0] | 否 | 偏移量,格式为 [x, y] |
animated | boolean | false | 否 | 是否开启动画 |
color | string | 否 | 自定义色彩,支持 hex rgb hsl 等写法,详细效果查看 |
Slots
children
<TaBadge count={1} showZero>
<TaButton>badge</TaButton>
</TaBadge>
renderBadge
<TaBadge content={1} renderBadge={() => <TaIcon icon="CheckOutlined" />}>
<div className="exp-badge-slot"></div>
</TaBadge>