@alessiocancian/react-native-actionsheet

中文文档
3.2.0发布于 2022/11/18MITTypeScriptCommonJS近 30 天下载 7155

跨平台 ActionSheet. (原始内容存档于2012-10-12). 这个组件执行自定义的 ActionSheet ,并提供同样的方式来将它绘制在有缺陷的平台上(iOS和Android). 实际上,为了保持最佳效果,它仍然在iOS上使用ActionSheetIOS.

中文使用文档
文档目录7 节
  1. 安装
  2. 使用量
  3. 职能构成部分
  4. 类组件
  5. 直接使用动作SheetCustom
  6. 如何重新设计风格?
  7. 道具

反应-内在行动表

npm
跨平台 ActionSheet. (原始内容存档于2012-10-12). 这个组件执行自定义的 ActionSheet ,并提供同样的方式来将它绘制在有缺陷的平台上(iOS和Android). 实际上,为了保持最佳效果,它仍然在iOS上使用ActionSheetIOS.

从 v3. 0. 0 开始, 具有类似本地 UI 的自定义 ActionSheet 可用并用作 iOS 的默认选项 :

Android通过路过也可以使用类似的UI theme="ios"数字 :

安装

npm i -S @alessiocancian/react-native-actionsheet

使用量

职能构成部分

import { useRef } from 'react'
import ActionSheet from '@alessiocancian/react-native-actionsheet'

const Demo = () => {
  const actionSheetRef = useRef()

  const showActionSheet = () => {
    actionSheetRef.current.show()
  }
  
  render() {
    return (
      <View>
        <Text onPress={showActionSheet}>Open ActionSheet</Text>
        <ActionSheet
          ref={actionSheetRef}
          title={'Which one do you like ?'}
          options={['Apple', 'Banana', 'cancel']}
          cancelButtonIndex={2}
          destructiveButtonIndex={1}
          onPress={(index) => { /* do something */ }}
        />
      </View>
    )
  }
}

类组件

import ActionSheet from '@alessiocancian/react-native-actionsheet'

class Demo extends React.Component {
  showActionSheet = () => {
    this.ActionSheet.show()
  }
  render() {
    return (
      <View>
        <Text onPress={this.showActionSheet}>Open ActionSheet</Text>
        <ActionSheet
          ref={o => this.ActionSheet = o}
          title={'Which one do you like ?'}
          options={['Apple', 'Banana', 'cancel']}
          cancelButtonIndex={2}
          destructiveButtonIndex={1}
          onPress={(index) => { /* do something */ }}
        />
      </View>
    )
  }
}

直接使用动作SheetCustom

您可以自定义选项和标题

import { ActionSheetCustom as ActionSheet } from '@alessiocancian/react-native-actionsheet'

const options = [
  'Cancel', 
  'Apple', 
  <Text style={{color: 'yellow'}}>Banana</Text>,
  'Watermelon', 
  <Text style={{color: 'red'}}>Durian</Text>
]

class Demo extends React.Component {
  showActionSheet = () => {
    this.ActionSheet.show()
  }
  render() {
    return (
      <View>
        <Text onPress={this.showActionSheet}>Open ActionSheet</Text>
        <ActionSheet
          ref={o => this.ActionSheet = o}
          title={<Text style={{color: '#000', fontSize: 18}}>Which one do you like?</Text>}
          options={options}
          cancelButtonIndex={0}
          destructiveButtonIndex={4}
          onPress={(index) => { /* do something */ }}
        />
      </View>
    )
  }
}

如何重新设计风格?

ActionSheet 的样式定义于 自由/风格.js我们可以通过 styles 覆盖默认样式的道具 。 见 示例 。 。 。 .

// example

const styles = {
  titleBox: {
    background: 'pink'
  },
  titleText: {
    fontSize: 16,
    color: '#000'
  }
}

<ActionSheet
  ...
  styles={styles}
/>

道具

https://github.com/alessiocancian/ react-native-actionsheet/blob/master/lib/options.js 互联网档案馆的存檔,存档日期2014-12-21

专利名称 类型 说明 默认
标题 字符串或反应节点 Action Sheet Custom 需要使用 iOS 的 ReactNode
消息 字符串或反应节点 Action Sheet Custom 需要使用 iOS 的 ReactNode
选项 (弦 作反儿童) ActionSheetCustom 需要使用 resact Child 选项用于 iOS
颜色 字符串
取消按钮索引 编号
破坏性按钮索引 编号
新闻 函数
用户界面Style "光" "黑暗" RN版本 >=0.63 系统主题
主题 "平地""欧斯" android 和 iOS 本地或类似本地的平地
样式 仅用于动作SheetCustom {}
状态栏 布尔 只为Android服务 虚假

版本与发布记录

@alessiocancian/react-native-actionsheet 共发布 20 个版本,首次发布于 2021/02/21;过去 12 个月发布了 0 个版本。

版本发布日期距今
3.2.0latest2022/11/183 年前
3.1.42022/11/183 年前
3.1.32022/11/054 年前
3.1.22022/02/244 年前
3.1.12021/09/145 年前
3.1.02021/09/025 年前

关于 @alessiocancian/react-native-actionsheet 的常见问题

@alessiocancian/react-native-actionsheet 是什么?

跨平台 ActionSheet. (原始内容存档于2012-10-12). 这个组件执行自定义的 ActionSheet ,并提供同样的方式来将它绘制在有缺陷的平台上(iOS和Android). 实际上,为了保持最佳效果,它仍然在iOS上使用ActionSheetIOS.

如何安装 @alessiocancian/react-native-actionsheet?

在项目目录运行 npm install @alessiocancian/react-native-actionsheet,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:prop-types(>=15.4.0)、react(>=15.4.0)、react-native(*)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@alessiocancian/react-native-actionsheet 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@alessiocancian/react-native-actionsheet 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@alessiocancian/react-native-actionsheet 可以商用吗?

@alessiocancian/react-native-actionsheet 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@alessiocancian/react-native-actionsheet 的下载量有多少?

根据 npm 官方下载统计,@alessiocancian/react-native-actionsheet 在 2026/10/06 – 2026/11/04 这 30 天内被下载 7,155 次,日均约 239 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@alessiocancian/react-native-actionsheet 还在维护吗?

最新版本 3.2.0 发布于 2022/11/18(3 年前);至今共发布 20 个版本,其中过去 12 个月发布了 0 个;首次发布于 2021/02/21。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。