具有特定长度的 React.PropTypes 数组

2023-12-22

是否可以使用React.PropTypes强制数组的长度?

这是一个非常简单的案例:

const TWO_NUMBERS = PropTypes.array; // i need this to be an array of two numbers

我知道在 javascript 中数组只是对象所以我尝试了这个:

const TWO_NUMBERS = PropTypes.shape({
    0: PropTypes.number.isRequired,
    1: PropTypes.number.isRequired,
});

然而这一直在警告我expected an object but got an array.


在这种情况下,您需要编写自己的特殊道具类型React 提供你做的功能。

const TWO_NUMBERS = function(props, propName, componentName) {
  if (!Array.isArray(props.TWO_NUMBERS) || props.TWO_NUMBERS.length != 2 || !props.TWO_NUMBERS.every(Number.isInteger)) {
    return new Error(`${propName} needs to be an array of two numbers`);
  }

  return null
}

如果出现以下情况,这会引发错误TWO_NUMBERS不是一个array, 不是一个array两个,并且不是仅包含整数的数组。

您可以在此处获取有关 proptype 函数的信息:

https://facebook.github.io/react/docs/typechecking-with-proptypes.html#react.proptypes https://facebook.github.io/react/docs/typechecking-with-proptypes.html#react.proptypes

它位于该示例块的底部。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

具有特定长度的 React.PropTypes 数组 的相关文章

  • 从输入类型编号获取无效值

    我正在使用输入类型数字 当它无效时 我如何从中获取值 例如 使用类型编号并仅打印 e 这本身是无效的 我正在使用 React 但我认为这个问题非常普遍 onChange event console log event target valu
  • 以编程方式更改 Redux-Form 字段值

    当我使用redux formv7 我发现没有办法设置字段值 现在在我的form 我有两个select成分 当第一个时 第二个的值就会很清楚select元件值改变 在类渲染中 div div site div div div div
  • 即使未显式使用“componentWillMount”,“componentWillMount”警告仍可见

    在我的代码中 我没有任何明确的用途componentWillMount 但我在运行时仍然看到一些警告webpack react dom development js 12386 警告 componentWillMount 已重命名 不建议使
  • webpack中动态加载外部模块失败

    我正在尝试建立以下架构 一个核心 React 应用程序 它具有一些基本功能 并且能够在运行时加载其他 React 组件 这些额外的 React 组件可以按需加载 并且它们在构建核心应用程序时不可用 因此它们不能包含在核心应用程序的捆绑包中
  • 使用 ref 触发反应 dropzone 不起作用

    我正在实现这个库 https github com felixrieseberg React Dropzone Component https github com felixrieseberg React Dropzone Compone
  • 如何映射轮播的子项数组?

    我正在尝试将 Carousel 组件包装在映射对象数组周围作为组件的子级 目前我只能让映射创建映射对象的 1 个子对象 轮播需要像这样
  • 如何在reactjs中禁用未来日期?

    我没有使用任何日期选择器 代码仍然工作正常 到目前为止 我已经选择了输入类型 一切正常 现在我想禁用未来的日期 我怎么做 div div
  • 使用 React.js + Express.js 发送电子邮件

    我在 ES6 中使用 React js 构建了一个 Web 应用程序 我目前想要创建一个基本的 联系我们 页面并想要发送电子邮件 我是 React 新手 刚刚发现我实际上无法使用 React 本身发送电子邮件 我正在遵循教程nodemail
  • 从旧的外部 Javascript 更改 React 组件的状态?

    如何从旧的 jQuery soup 中更改 React 组件的状态 代码 我有一个这样的组件 var AComponent React createClass getInitialState function return ids rend
  • 在react-big-calendar中单击事件时添加弹出窗口?

    当单击事件时 我无法将弹出窗口添加到事件中 弹出窗口似乎只显示在事件槽中 而不是显示在事件槽的顶部 此外 由于我为事件创建了一个自定义组件并尝试在自定义组件中实现弹出窗口 因此只有当我单击事件名称时才会显示弹出窗口 这是代码 class C
  • 如何将 Relay 查询从 TypeScript 转换为 ES5?

    我正在用 TypeScript 编写一个网络应用程序 该应用程序使用 Facebook 的 React 和 Relay 我的 TypeScript 源代码使用 TypeScript 编译器 TSC 编译为 ES6 代码 然后 使用 Babe
  • React 在同一组件中渲染多个模态

    我对 React 和一般编码都很陌生 我试图在同一组件中渲染多个模态 但它们都是同时渲染的 因此看起来所有链接都在最后一个模态中渲染文本 这是状态设置的地方 class Header extends React Component cons
  • ReactCSSTransitionGroup 组件WillLeave 未调用

    我尝试使用 ReactCssTransition 但不知何故该事件没有被调用 componentWillLeave 这是我的组件 import React Component from react import TransitionGrou
  • 如何禁用 Chrome 自动完成功能?

    我们想要禁用自动完成在 Chrome 浏览器中的 React JavaScript 应用程序中 我们尝试了互联网上提供的一系列解决方案 但没有任何效果 autoComplete off不可靠 其他方法也不可靠 目前这对我们来说非常重要 所以
  • 在 React Native 中将 Props 传递到屏幕

    我已经开始学习 React Native 并且一如既往地从创建可重用组件开始 我了解了如何在创建自定义组件时传递和访问 props 我想在 React Native 中创建一个基本屏幕 它具有通用属性 并且我的应用程序中的所有屏幕都可以设置
  • 如何正确更新反应钩子状态内的数组

    我一直在尝试更新代表反应状态的数组内的对象 当输入的值更改时应该更新该对象 我可以自己找到一种方法来更新它 但我不太确定这是正确的方法 因为当我打开反应开发工具并转到组件选项卡并单击我正在处理的组件时 在输入输入时状态不会立即更新 并且为了
  • React Context 的范围是什么?

    我不清楚在哪里Context可以在 React 应用程序中创建 我可以在组件树中的任何位置创建上下文吗 如果可以 该上下文的范围是否仅限于创建它的子级 或者 Context 本质上是全局的 我可以在文档中的哪里找到这个 案例 我在页面上多次
  • Redux 状态在 mapStateToProps 中未定义

    我目前正在关注this http teropa info blog 2015 09 10 full stack redux tutorial html教程 我遇到了一些障碍mapStateToProps在下面的代码中 import Reac
  • 将 Sweet Alert 弹出窗口添加到 React 组件中的按钮

    我为 Bootstrap 和 React 找到了这个完美的 Sweet Alert 模块 我在 Meteor 应用程序中使用它 http djorg83 github io react bootstrap sweetalert http d
  • 如何修复超出最大调用堆栈大小

    有一个 MERN Firebase 应用程序并收到此错误和一堆 atdeepExtend deepCopy ts 71 RangeError Maximum call stack size exceeded getApps as apps

随机推荐

  • .NET WinForms - 如何监听系统注销、用户锁定、休眠启动和系统恢复的事件?

    我想监听 Windows Forms NET 应用程序中的以下系统范围事件 注销 锁窗户 休眠启动 睡眠开始 系统已恢复 这些可能吗 Thanks 您需要查看 WMI Windows 媒体工具 您需要为上述事件创建事件观察者 http ms
  • 将值放在直方图的箱的中心

    我有以下代码来绘制直方图 中的值time new是发生某事的时间 time new 9 23 19 9 1 2 19 5 4 20 23 10 20 5 21 17 4 13 8 13 6 19 9 14 9 10 23 19 23 20
  • 单击时关闭对话框(任何地方)

    是否有默认选项可以通过单击屏幕上的某处而不是关闭图标来关闭 jQuery 对话框 编辑 这是我编写的一个插件 它扩展了 jQuery UI 对话框以包括 单击外部时关闭以及其他功能 https github com jasonday jQu
  • 会话超时不起作用+ cakephp

    我想将会话超时增加到 24 小时左右 为此我在网上进行了搜索 但没有任何帮助 目前 我的网站在该会话到期后将会话时间设置为大约 40 分钟 我想将其设置为 24 小时 在我的 core php 中我添加了这些行 Configure writ
  • Azure 内存资源耗尽

    我目前在 Azure 中托管了几十个网站 最近开始在每个 Web 应用程序的门户刀片中看到 内存资源耗尽 警告 我在两个 S3 标准 大型 应用程序服务计划中托管我的网站 我在所有网站上都会收到警告 无论它们使用哪个应用程序服务计划 有趣的
  • 如何在 4.0+ 上更改 Edittext 下划线的颜色?

    我的应用程序 Theme Holo 有 但我想更改 edittext 下划线边框的颜色 我不想在编辑文本周围有完整的边框 我只想更改 4 0 版本上 edittext 布局的颜色 我怎样才能做到这一点 你可以使用9patch 这个资源是一个
  • 如何处理二进制文件格式的可移植性问题

    我正在设计一种二进制文件格式来存储字符串 不终止 null 以节省空间 和二进制数据 我 处理小 大端系统的最佳方法是什么 i a 使用 ntohl htonl 将所有内容转换为网络字节顺序并返回是否有效 二 打包结构在 x86 x64 和
  • 为什么我的多索引数据框有重复的索引值?

    我有以下名为 df 的 pd DataFrame date cluster label value 0 2018 11 14 02 16 22 0 1 5 1 2018 11 14 02 16 22 0 7 0 2 2018 11 14 0
  • 在php中邮寄之前确认消息

    我正在开发一个网站 其中会将数据库中的名称列为链接 我已经达到这样的程度 当一个用户单击该名称时 它将将该名称的详细信息传递到另一个页面以查看电子邮件格式等 我只需要有关如何执行此操作的建议 因为我不是php 专家 我还在研究更高级的代码
  • 从命令行构建时如何修改/替换选项集文件?

    我使用以下命令从批处理文件构建包 msbuild lib Package dproj target Build p config 1 包的设置取决于选项集
  • 在 GKE 集群中安装 Velero 时无法提取映像“velero/velero-plugin-for-gcp:v1.1.0”

    我正在尝试安装和配置 Velero 以进行 kubernetes 备份 我已遵循link https github com vmware tanzu velero plugin for gcp setup在我的 GKE 集群中配置它 安装顺
  • RabbitMQ - 用户“guest”对虚拟主机“XXX”的访问被拒绝

    我使用的是 RabbitMQ 3 0 3 版本 该服务在过去 4 5 年里运行良好 最近服务器上安装了一些更新补丁 服务停止响应 这就是正在发生的事情 RabbitMQ 服务 Windows 服务 正在运行但没有响应 在日志文件中我看到错误
  • 站点根目录的相对路径

    我觉得问这个问题很蠢 但我无法弄清楚 我发现了几个帖子 这是一个 https stackoverflow com questions 3655059 html pick images of root folder from sub fold
  • 如何在Android中从SD卡中删除图像[重复]

    这个问题在这里已经有答案了 File file new File imagePath boolean deleted file delete 使用此代码删除当前屏幕上的图像 但不会从 SDCard 中删除 所以请任何知道答案的人请发布 文件
  • 在 Jade 中保留换行符

    每当我渲染 JADE 模板时 我都会在一行中获取所有 HTML 这使得在查看源代码模式下阅读变得困难 我如何告诉 JADE 创建正确缩进的 HTML 这是我的模板 application p docs a href docs index h
  • HttpContext 标头

    我创建了这个类来从请求中获取标头值 public class AuthenticationHeader private static IHttpContextAccessor httpContextAccessor public Authe
  • Parse REST API 密钥在哪里?

    我正在按照本指南连接到 Flask 应用程序中的 Parse 服务器 https parseplatform github io docs rest guide https parseplatform github io docs rest
  • 使用列表理解调用函数列表

    我可以调用函数列表并使用列表理解吗 def func1 return 1 def func2 return 2 def func3 return 3 fl func1 func2 func3 fl 0 fl 1 fl 2 我知道我能做到 f
  • DBI SQL Server ODBC 连接中返回的数据库对象缺少字母

    不幸的是 如果不将机密信用信息共享到我遇到问题的数据库 我将无法为该问题创建良好的重现 希望下面有足够的信息来标记 ODBC 专家能够理解的任何明显问题 背景 我正在运行具有以下规格的 MacBook Pro Model Name MacB
  • 具有特定长度的 React.PropTypes 数组

    是否可以使用React PropTypes强制数组的长度 这是一个非常简单的案例 const TWO NUMBERS PropTypes array i need this to be an array of two numbers 我知道