当前位置: 首页 > 知识库问答 >
问题:

如何使用道具类型强制阵列形状和大小?

罗晨
2023-03-14

我试图创建一个可以是字符串或只有一个字符串和一个对象形状的数组,例如[10,{消息:你好世界,类型:成功}]

目前,我有:

static propTypes = {
    myProp: PropTypes.oneOfType([
        PropTypes.string,
        PropTypes.arrayOf(
            PropTypes.oneOfType([PropTypes.string, myObjectShape])
        ),
    ]),
 }

这将接受可以有任意数量的字符串或对象形状的字符串或数组。有没有办法将数组限制为只有一个字符串和一个对象形状?

共有1个答案

桂志新
2023-03-14

可以创建自定义道具类型。类似于。。。

myProp: function(props, propName, componentName) {
    if (!props[propName] || !props[propName].length !== 2) {
      return new Error(`${propName} must be an array with length 2`);
    }

    if (typeof props[propName][0] !== 'string') {
      return new Error(`The first element in ${propName} must be a string`);
    }

    // check for the shape of the object at index 1...
}

更多关于它在这里。

 类似资料:
  • 是否有一种内置的方法来使用proptypes来确保传递给组件的对象数组实际上是特定形状的对象数组? 也许是这样的? 我是不是漏了什么特别明显的东西?看来这会很受欢迎。

  • 我在Kotlin中有一个方法,它返回一个泛型列表的Rx可观察值: 因为Kotlin list特征定义为,Java将看到返回类型为。 是否有一种方法告诉Kotlin编译器,Java应该将其视为?

  • 注意:使用形状工具,可以轻松地创建按钮、导航栏以及其他在网页上使用的项目。有关 Photoshop 中所有绘图功能的概述,请参阅关于绘图。 在形状图层上创建形状 选择一个形状工具或钢笔工具。确保从选项栏的菜单中选择“形状”。 若要选取形状的颜色,请在选项栏中单击色板,然后从拾色器中选取一种颜色。 (可选)在选项栏中设置工具选项。单击形状按钮旁边的反向箭头以查看每个工具的其他选项。(请参阅形状工具选

  • 注意:使用形状工具,可以轻松地创建按钮、导航栏以及其他在网页上使用的项目。有关 Photoshop 中所有绘图功能的概述,请参阅关于绘图。 在形状图层上创建形状 选择一个形状工具或钢笔工具。确保从选项栏的菜单中选择“形状”。 若要选取形状的颜色,请在选项栏中单击色板,然后从拾色器中选取一种颜色。 (可选)在选项栏中设置工具选项。单击形状按钮旁边的反向箭头以查看每个工具的其他选项。(请参阅形状工具选

  • 第一次尝试GraphQL,我希望一种模式类型能够访问另一种模式类型中的对象数组。在连接到MongoDB之前,我使用本地数据和lodash对此进行测试。关于我的尝试,我得到了一些错误。我知道我很接近了。任何援助将不胜感激。 以下是我的最新尝试。我使用 express-graphql 访问了 GraphQLList,并使用 GraphQLID 访问了第二个模式。 schema.js 其目的是在Grap

  • 我有一个组件,根据其大小接收道具。道具可以是字符串或数字,例如:或。 我能让知道这可以是PropTypes验证中的一个或另一个吗? 如果未指定类型,则会收到警告: prop type无效;它必须是一个函数,通常来自React。道具类型。