UNPKG

zarm

Version:

基于 React 的移动端UI库

143 lines (124 loc) 5.92 kB
# Collapse 折叠面板 ## 基本用法 ```jsx import { useState } from 'react'; import { Collapse, Checkbox } from 'zarm'; const Demo = () => { const [animated, setAnimated] = useState(false); const [multiple, setMultiple] = useState(false); const [activeKey, setActiveKey] = useState('1'); return ( <> <Checkbox.Group block style={{ padding: '8px 16px 8px 16px' }}> <Checkbox value="animated" checked={animated} onChange={(e) => { setAnimated(e.target.checked); }} > 开启切换动画 </Checkbox> <Checkbox value="multiple" checked={multiple} onChange={(e) => { setMultiple(e.target.checked); setActiveKey(e.target.checked ? [] : undefined); }} > 允许展开多项 </Checkbox> </Checkbox.Group> <Collapse disabled activeKey={activeKey} animated={animated} multiple={multiple} onChange={(activeKey) => { console.log(activeKey); setActiveKey(activeKey); }} > <Collapse.Item key="1" title="第一项"> This is content of item1. This is content of item1. This is content of item1. </Collapse.Item> <Collapse.Item key="2" title="第二项"> This is content of item2. This is content of item2. This is content of item2. </Collapse.Item> <Collapse.Item key="3" title="第三项"> This is content of item3. This is content of item3. This is content of item3. </Collapse.Item> </Collapse> </> ); }; ReactDOM.render(<Demo />, mountNode); ``` ## 默认展开项 ```jsx import { Collapse } from 'zarm'; ReactDOM.render( <Collapse multiple defaultActiveKey={['0', '1']}> <Collapse.Item key="0" title="第一项"> This is content of item1. This is content of item1. This is content of item1. </Collapse.Item> <Collapse.Item key="1" title="第二项"> This is content of item2. This is content of item2. This is content of item2. </Collapse.Item> <Collapse.Item key="2" title="第三项"> This is content of item3. This is content of item3. This is content of item3. </Collapse.Item> </Collapse>, mountNode, ); ``` ## 禁用子项 ```jsx import { Collapse } from 'zarm'; ReactDOM.render( <Collapse multiple defaultActiveKey={['test2']}> <Collapse.Item key="test1" title="第一项"> This is content of item1. This is content of item1. This is content of item1. </Collapse.Item> <Collapse.Item key="test2" title="第二项" disabled> This is content of item2. This is content of item2. This is content of item2. </Collapse.Item> <Collapse.Item key="test3" title="第三项" disabled> This is content of item3. This is content of item3. This is content of item3. </Collapse.Item> </Collapse>, mountNode, ); ``` ## API ## Collapse | 属性 | 类型 | 默认值 | 说明 | | :--------------- | :------------------------------------------------------------ | :----- | :--------------------------------------- | | multiple | boolean | false | 是否可以同时展开多项 | | animated | boolean | false | 是否添加展开动画 | | activeKey | string \| number \| string[] \| number[] | - | 动态更新展开项的索引数组或字符串或数字 | | defaultActiveKey | string \| number \| string[] \| number[] | - | 初始化默认展开项的索引数组或字符串或数字 | | onChange | (activeKey: string \| number \| string[] \| number[]) => void | - | 点击某一项的回调函数,返回选中的项 | ## Collapse.Item | 属性 | 类型 | 默认值 | 说明 | | :------- | :------------------------ | :----- | :------------------- | | title | ReactNode | - | 每一项的名称 | | key | string \| number | - | 对应 activeKey | | disabled | boolean | false | 是否禁用 | | onChange | (active: boolean) => void | - | 点击某一项的回调函数 | ## CSS 变量 | 属性 | 默认值 | 说明 | | :--------------------------- | :------------------------------ | :--------------------- | | --border-color | 'var(--za-border-color)' | 边框颜色 | | --arrow-color | 'var(--za-arrow-color)' | 箭头颜色 | | --arrow-size | 'var(--za-arrow-size)' | 箭头的大小 | | --arrow-width | 'var(--za-arrow-width)' | 箭头的粗细 | | --arrow-disabled-color | '#eee' | 箭头禁用状态颜色 | | --header-height | '52px' | 头部的高度 | | --header-padding-horizontal | '16px' | 头部的水平间距 | | --header-padding-vertical | '15px' | 头部的垂直间距 | | --header-disable-color | 'var(--za-color-text-disabled)' | 禁用状态下头部字体颜色 | | --content-color | 'var(--za-color-text-caption)' | 内容颜色 | | --content-padding-vertical | 'var(--za-padding-v-sm)' | 内容水平间距 | | --content-padding-horizontal | 'var(--za-padding-h-sm)' | 内容水平间距 |