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

ReactJS component PropTypes-使用设置的参数数指定函数类型

陆寒
2023-03-14

我正在react(版本0.13.3)组件中指定所需的函数proptype。。。

var MyComponent = React.createClass({
    propTypes : {
        onClick : React.PropTypes.func.isRequired
    },

    handleClick(event) {
        this.props.onClick(event, clickCallback);
    },

    clickCallback() {
        console.log("foo");
    },

    render() {
        return <div onClick={this.handleClick}></div>
    }
});

export default MyComponent;

正如您所看到的,我的onClick prop不仅需要是一个函数,还需要接受两个参数。是否有任何方法可以使用React PropTypes指定这一点?

我已经阅读了React docs关于可重用组件的条目,似乎只有一种方法可以定义对象类型的形状,而不是函数类型。

共有2个答案

武峻熙
2023-03-14

好的,我检查了一下,这可能是答案(现在无法测试)。因此,您可以为PropType传递验证函数,如:

propTypes : {
  onClick : function(props, propName, componentName) {
    if (!props.event || !props.callback) {
       return new Error('Too few arguments');
    }
  }
}

查看本文了解详情:http://developer.fortnox.se/blog/proptypes-in-react-js/

邢勇
2023-03-14

您可以尝试使用自定义验证器:

propTypes : {
    onClick : function(props, propName, componentName) {
        var fn = props[propName];
        if(!fn.prototype ||
           (typeof fn.prototype.constructor !== 'function' &&
            fn.prototype.constructor.length !== 2)) {
            return new Error(propName + 'must be a function with 2 args');
        }
    }
}
 类似资料:
  • 本文向大家介绍PowerShell函数参数指定数据类型实例,包括了PowerShell函数参数指定数据类型实例的使用技巧和注意事项,需要的朋友参考一下 本文介绍在PowerShell创建自定义函数时,为必选参数设置强类型有什么好处,应该如何设置。 为了提高必选参数的安全性,PowerShell函数定义的最佳实践告诉我们,要为必选参数设置强类型。这是为什么呢,我们来看一个例子。 上面这个例子是接收用

  • Scala 函数 一般情况下函数调用参数,就按照函数定义时的参数顺序一个个传递。但是我们也可以通过指定函数参数名,并且不需要按照顺序向函数传递参数,实例如下: object Test { def main(args: Array[String]) { printInt(b=5, a=7); } def printInt( a:Int, b:Int ) = {

  • 我使用等代码从weather API获取数据,但遇到了两个错误: 因此,我在此网站上搜索类似的错误,并在https://stackoverflow.com/a/35053689/13899010找到了部分解决方案,我使用这个解决方案是因为我不想使用资源字符串来更改显示的数据。将此添加到string.xml中:然后将代码更改为: 现在,我得到了以下错误。我在string.format()中看到And

  • 问题内容: 我希望JavaScript函数具有我设置了默认值的可选参数,如果未定义值,则使用该参数(如果传递值,则将其忽略)。在Ruby中,您可以这样操作: 这在JavaScript中有效吗? 问题答案: 从ES6 / ES2015开始,默认参数在语言规范中。 正常工作。 如果 未 传递 任何值 或 未定义, 则默认函数参数允许使用默认值初始化形式参数。 您还可以通过解构来模拟默认的命名参数: 预

  • 本文向大家介绍PowerShell函数参数设置成自动识别数据类型的例子,包括了PowerShell函数参数设置成自动识别数据类型的例子的使用技巧和注意事项,需要的朋友参考一下 本文介绍PowerShell自定义函数中使用参数集时,怎么设置系统自动识别参数的数据类型。 识别参数类型的一个好处就是,在使用参数集时,不需要每次都指定参数名称了。 请看下面这个Test-Binding函数。这个PowerS