Reference version

可折叠

一个带标签、可点击的标题,用于切换其内容的可见性。

Android
iOS
Web
Included in Expo Go
Bundled version:
~56.0.6

For the complete documentation index, see llms.txt. Use this file to discover all available pages.

Collapsible 是一个基础组件,通过点击带标签的标题来显示或隐藏其内容。可通过 isOpenonOpenChange 进行受控——每个 Collapsible 都管理独立状态。

安装

Terminal
npx expo install @expo/ui

If you are installing this in an existing React Native app, make sure to install expo in your project.

用法

基础折叠面板

CollapsibleExample.tsx
import { useState } from 'react'; import { Host, Column, Collapsible, Text } from '@expo/ui'; export default function CollapsibleExample() { const [open, setOpen] = useState(false); return ( <Host style={{ flex: 1 }}> <Column spacing={8} style={{ padding: 16 }}> <Collapsible isOpen={open} onOpenChange={setOpen} label="关于"> <Text> 一个基础组件,通过带标签的可点击标题切换其内容的可见性。 </Text> </Collapsible> </Column> </Host> ); }

手风琴(一次只展开一个部分)

将每个 CollapsibleisOpen 绑定到共享的父级值。该组件不会强制互斥——如何组合由使用者决定。

CollapsibleAccordionExample.tsx
import { useState } from 'react'; import { Host, Column, Collapsible, Text } from '@expo/ui'; type Section = 'a' | 'b' | 'c' | null; export default function CollapsibleAccordionExample() { const [openSection, setOpenSection] = useState<Section>('a'); return ( <Host style={{ flex: 1 }}> <Column spacing={8} style={{ padding: 16 }}> <Collapsible isOpen={openSection === 'a'} onOpenChange={open => setOpenSection(open ? 'a' : null)} label="A 部分"> <Text>打开 B 或 C 会关闭此项。</Text> </Collapsible> <Collapsible isOpen={openSection === 'b'} onOpenChange={open => setOpenSection(open ? 'b' : null)} label="B 部分"> <Text>打开 A 或 C 会关闭此项。</Text> </Collapsible> <Collapsible isOpen={openSection === 'c'} onOpenChange={open => setOpenSection(open ? 'c' : null)} label="C 部分"> <Text>打开 A 或 B 会关闭此项。</Text> </Collapsible> </Column> </Host> ); }

API

import { Collapsible } from '@expo/ui';

Component

Collapsible

Android
iOS
Web

Type: React.Element<CollapsibleProps>

A primitive that toggles visibility of its content via a labelled tappable header. Controlled via isOpen + onOpenChange.

Props for the Collapsible component, a primitive that shows or hides its content with a tap on a labelled header.

CollapsibleProps

children

Android
iOS
Web
Optional • Type: ReactNode

Content rendered when isOpen is true.

isOpen

Android
iOS
Web
Type: boolean

Whether the content is currently expanded.

label

Android
iOS
Web
Optional • Type: string

Text rendered in the tappable header.

onOpenChange

Android
iOS
Web
Type: (isOpen: boolean) => void

Called when the user taps the header to toggle the open state.