Chuyển tới nội dung chính
Phiên bản: 1.9.0

implementation

Component giúp tổ chức và cho phép điều hướng giữa các nhóm nội dung có liên quan và ở cùng cấp độ.

Properties

Tabs

NameTypeDefaultDescription
activeKeystring

Key của tab đang được chọn. Cần được sử dụng kết hợp với onChange để cập nhật lại giá trị này khi người dùng yêu cầu chuyển đổi tab

bottomBarbooleanfalse

Hiển thị thanh điều khiển tab ở phía dưới, thay vì ở trên đầu như mặc định

defaultActiveKeystring

Key của tab mặc định được chọn khi các tab được khởi tạo. Thay đổi giá trị này sau khi đã render sẽ không có tác dụng

destroyInactiveTabPanebooleanfalse

Tự động dọn dẹp các tab không được chọn

itemsTab[]

Mảng thiết lập các tab cần được hiển thị. Sử dụng thay cho children.

renderTabBar(props: RenderTabBarProps) => React.ReactElement

Sử dụng để custom lại giao diện của thanh điều khiển tab, thay vì sử dụng component TabBar mặc định.

Hàm nhận vào các thiết lập cần thiết để render thanh điều khiển tab cũng như event handler để xử lý khi người dùng yêu cầu chuyển đổi tab, và trả về một ReactElement để hiển thị đến người dùng.

scrollablebooleanfalse

Cho phép cuộn ngang khi số lượng tab quá nhiều và không hiển thị hết trên một dòng

onChange(activeKey: string) => void

Callback được gọi khi người dùng yêu cầu chuyển đổi tab. Cần cập nhật lại giá trị của activeKey để thay đổi tab đang được chọn nếu được truyền vào

onTabClick(activeKey: string, e: React.KeyboardEvent | React.MouseEvent) => void

Callback được gọi khi nhãn của tab được click

Tabs.Tab

NameTypeDefaultDescription
activebooleanfalse

Trạng thái được chọn của tab

destroyInactiveTabPanebooleanfalse

Tự động dọn dẹp các tab không được chọn

disabledbooleanfalse

Trạng thái vô hiệu hóa của tab, người dùng sẽ không thể chuyển đổi sang tab này

labelReact.ReactNode

Nhãn của tab, dùng để chuyển đổi giữa các tab

tabKeystring

Key định danh của tab

Example

import React from "react";
import { Page, Tabs, List, Icon, Avatar } from "zmp-ui";

const alphabet = "abcdefghijklmnopqrstuvwxyz";
const users = Array.from(Array(10).keys()).map((i) => ({
  name: `Người dùng ${i}`,
  avatar: alphabet[Math.floor(Math.random() * alphabet.length)].toUpperCase(),
  online: Math.floor(Math.random() * 10) % 2 === 0,
  key: i,
}));

export default function HomePage(props) {
  return (
    <Page className="section-container">
      <Tabs id="contact-list">
        <Tabs.Tab key="tab1" label="Tab 1">
          <List>
            {users.map((user) => (
              <List.Item
                key={user.key}
                prefix={<Avatar online={user.online}>{user.avatar}</Avatar>}
                title={user.name}
                subTitle="subtitle"
                suffix={<Icon icon="zi-call" />}
              />
            ))}
          </List>
        </Tabs.Tab>
        <Tabs.Tab key="tab2" label="Tab 2">
          Tab 2 content
        </Tabs.Tab>
        <Tabs.Tab key="tab3" label="Tab 3">
          Tab 3 content
        </Tabs.Tab>
      </Tabs>
    </Page>
  );
}