操作表是一个向上滑动的面板,用于向用户展示一组关于如何继续执行给定任务的备选方案。
您也可以使用操作表来提示用户确认可能存在危险的操作。
操作表包含一个可选的标题和一个或多个按钮,每个按钮对应一个要执行的操作。
包括以下组件
操作
操作按钮
操作标签
操作组
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
backdrop | 布尔值 | true | 启用操作表背景(后面半透明的深色层) |
component | 字符串 | 'div' | 组件的 HTML 元素 |
opened | 布尔值 | false | 允许打开/关闭操作表并设置其初始状态 |
onBackdropClick | 函数(e) | 背景元素上的点击处理程序 |
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
bold | 布尔值 | 未定义 | 使按钮文本加粗。覆盖 |
boldIos | 布尔值 | false | 在 iOS 主题中使按钮文本加粗 |
boldMaterial | 布尔值 | false | 在 Material 主题中使按钮文本加粗 |
colors | 对象 | 包含 Tailwind CSS 颜色类的对象 | |
colors.activeBgIos | 字符串 | 'active:bg-neutral-200 dark:active:bg-neutral-700' | |
colors.activeBgMaterial | 字符串 | '' | |
colors.bgIos | 字符串 | 'bg-white dark:bg-neutral-800' | |
colors.bgMaterial | 字符串 | 'bg-md-light-surface-3 dark:bg-md-dark-surface-3' | |
colors.textIos | 字符串 | 'text-primary' | |
colors.textMaterial | 字符串 | 'text-md-light-on-surface dark:text-md-dark-on-surface' | |
component | 字符串 | 'button' | 组件的 HTML 元素 |
dividers | 布尔值 | 未定义 | 呈现按钮外部细线(边框)。如果未指定,将为 iOS 主题启用 |
fontSizeIos | 字符串 | 'text-xl' | iOS 主题中按钮文本的字体大小 |
fontSizeMaterial | 字符串 | 'text-base' | Material 主题中按钮文本的字体大小 |
href | 字符串 | 链接的 | |
touchRipple | 布尔值 | true | 在 Material 主题中启用触控涟漪效果 |
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
colors | 对象 | 包含 Tailwind CSS 颜色类的对象 | |
colors.bgIos | 字符串 | 'bg-white dark:bg-neutral-800' | |
colors.bgMaterial | 字符串 | 'bg-md-light-surface-3 dark:bg-md-dark-surface-3' | |
colors.textIos | 字符串 | 'text-black text-opacity-55 dark:text-white dark:text-opacity-55' | |
colors.textMaterial | 字符串 | 'text-md-light-primary dark:text-md-dark-primary' | |
component | 字符串 | 'div' | 组件的 HTML 元素 |
dividers | 布尔值 | 未定义 | 呈现按钮外部细线(边框)。如果未指定,将在 iOS 主题中启用 |
fontSizeIos | 字符串 | 'text-sm' | iOS 主题中按钮文本的字体大小 |
fontSizeMaterial | 字符串 | 'text-sm' | Material 主题中按钮文本的字体大小 |
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
component | 字符串 | 'div' | 组件的 HTML 元素 |
dividers | 布尔值 | true | 呈现组外部细线(边框)。(仅在 Material 主题中) |
import React, { useState } from 'react';import {Page,Navbar,NavbarBackLink,Button,Block,BlockTitle,Actions,ActionsGroup,ActionsLabel,ActionsButton,} from 'konsta/react';export default function ActionSheetPage() {const isPreview = document.location.href.includes('examplePreview');const [actionsOneOpened, setActionsOneOpened] = useState(false);const [actionsTwoOpened, setActionsTwoOpened] = useState(false);return (<Page><Navbartitle="Action Sheet"/><Block strong inset className="space-y-4"><p>Action Sheet is a slide-up pane for presenting the user with a set ofalternatives for how to proceed with a given task.</p></Block><BlockTitle>Open Action Sheet</BlockTitle><Block strong inset className="flex space-x-4 rtl:space-x-reverse"><Button onClick={() => setActionsOneOpened(true)}>One group</Button><Button onClick={() => setActionsTwoOpened(true)}>Two groups</Button></Block><Actionsopened={actionsOneOpened}onBackdropClick={() => setActionsOneOpened(false)}><ActionsGroup><ActionsLabel>Do something</ActionsLabel><ActionsButton onClick={() => setActionsOneOpened(false)} bold>Button 1</ActionsButton><ActionsButton onClick={() => setActionsOneOpened(false)}>Button 2</ActionsButton><ActionsButton onClick={() => setActionsOneOpened(false)}>Cancel</ActionsButton></ActionsGroup></Actions><Actionsopened={actionsTwoOpened}onBackdropClick={() => setActionsTwoOpened(false)}><ActionsGroup><ActionsLabel>Do something</ActionsLabel><ActionsButton onClick={() => setActionsTwoOpened(false)} bold>Button 1</ActionsButton><ActionsButton onClick={() => setActionsTwoOpened(false)}>Button 2</ActionsButton></ActionsGroup><ActionsGroup><ActionsButton onClick={() => setActionsTwoOpened(false)}>Cancel</ActionsButton></ActionsGroup></Actions></Page>);}