# YdyTabBar 标签栏
> 位于 APP 底部,方便用户在不同功能模块之间进行快速切换。
## 规则
- 用作 APP 的一级分类,数量控制在 3-5 个之间。
- 即使某个 Tab 不可用,也不要禁用或者移除该 Tab。
- 使用 Badge 进行提示,足不出户也能知道有内容更新。
## API
|属性 |说明 |类型 |默认值|
|----- |----- |----- |-----|
|tabBarItems |标签子项 |object[]|[]|
ps: 把官方的 TabBar.Item 改成 tabBarItems 选项,只需对应的配置即可使用,具体使用看demo
ps: 其他API和[TabBar](https://mobile.ant.design/components/tab-bar-cn/)一致
## Demo
~~~ jsx
import YdyTabBar from '@/components/YdyTabBar';
import YdyScrollView from "@/components/YdyScrollView";
class YdyTabBarExample extends React.Component {
render() {
const tabBarItems = [
{
id: 'components', // id, 唯一标识, 主要给测试使用
name: '组件', // 标题文字
size: '22px', // 大小,目前固定22px
selectedTab: 'blueTab', // 选中时对应的唯一标识
badge: 1, // 徽标数
dot: false, // 是否在右上角显示小红点(在设置badge的情况下失效)
renderContent: <YdyScrollView>blueTab</YdyScrollView>, // 对应的页面
icon: 'https://zos.alipayobjects.com/rmsportal/sifuoDUQdAFKAVcFGROC.svg', // 默认展示图片
selectedIcon: 'https://zos.alipayobjects.com/rmsportal/iSrlOTqrKddqbOmlvUfq.svg' // 选中后的展示图片
},
{
id: 'api',
name: '接口',
size: '22px',
selectedTab: 'redTab',
badge: 'new',
dot: false,
renderContent: <YdyScrollView>redTab</YdyScrollView>,
icon: 'https://gw.alipayobjects.com/zos/rmsportal/BTSsmHkPsQSPTktcXyTV.svg',
selectedIcon: 'https://gw.alipayobjects.com/zos/rmsportal/ekLecvKBnRazVLXbWOnE.svg'
},
{
id: 'friend',
name: '朋友',
size: '22px',
selectedTab: 'greenTab',
badge: '',
dot: true,
renderContent: <YdyScrollView>greenTab</YdyScrollView>,
icon: 'https://zos.alipayobjects.com/rmsportal/psUFoAMjkCcjqtUCNPxB.svg',
selectedIcon: 'https://zos.alipayobjects.com/rmsportal/IIRLrXXrFAhXVdhMWgUI.svg'
},
{
id: 'me',
name: '我的',
size: '22px',
selectedTab: 'yellowTab',
badge: '',
dot: false,
renderContent: <YdyScrollView>yellowTab</YdyScrollView>,
icon: 'https://zos.alipayobjects.com/rmsportal/asJMfBrNqpMMlVpeInPQ.svg',
selectedIcon: 'https://zos.alipayobjects.com/rmsportal/gjpzzcrPMkhfEqgbYvmN.svg'
}
];
return (
<div className="App">
<YdyTabBar ref="YdyTabBar" tabBarItems={tabBarItems} selectedTab="blueTab"/>
</div>
);
}
}
ReactDOM.render(<YdyTabBarExample />, mountNode);
~~~
## Bug 修复汇总
### 修复在部分安卓机中以下中出现 `页面排版布局` 的异常
如果选项中的 tabBarItems 的 renderContent 是外面引用的组件,该组件应为以下格式
~~~ js
class Item extends React.Component {
render() {
return (
// 在较低版本的安卓机上,div没有设置width默认为0导致布局异常
<div style={ { width: window.innerWidth } }>
...
</div>
);
}
}
~~~
PS: 基于[TabBar](https://mobile.ant.design/components/tab-bar-cn/)实现
- 介绍
- 开发规范
- SAAS部署说明
- 移动端部署说明
- SAAS后台使用说明
- 代码编写规范
- 框架开发规范
- 移动端Web开发注意事项
- 后端平台使用文档
- 平台环境搭建
- 控件创建说明
- 平台控件使用说明
- Flex Flex布局控件
- comboTree 组合树控件
- 应用列表
- Middleground 源钉云中台前端
- IndexCustomize 钉钉工作台主页定制
- ContractManagement 合同管理
- 组件使用文档
- General
- YdyIcon 图标
- Navigation
- YdySiderMenu 侧面菜单
- YdyTabBar 标签栏
- Data Entry
- YdyForm 表单
- YdyDatePicker 时间选择器
- YdyPicker 单项选择器
- YdyImagePicker 图片选择器
- Data Display
- YdyScrollView 滚动视图
- YdyListView 列表视图
- Feedback
- YdyFallbackView 异常视图
- Other
- YdyHeader 页头
- YdyMainLayout 主布局
- 公共服务使用文档
- DingTalk 钉钉移动端API
- Service 核心服务
- HttpService http服务
- 问题反馈与汇总
- Bug修复汇总
- 问题汇总
- IIS搭建