ReactJS 组件 PropTypes - 使用一组参数指定函数类型

2024-01-19

我在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 属性不仅需要是一个函数,而且需要接受 2 个参数。有什么方法可以使用 React PropTypes 来指定这一点吗?

我已阅读关于可重用组件的 React 文档条目 https://facebook.github.io/react/docs/reusable-components.html并且似乎只有一种方法可以定义对象类型的形状,而不能定义函数类型。


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

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

ReactJS 组件 PropTypes - 使用一组参数指定函数类型 的相关文章

随机推荐