reactjs proptypes如何在引擎盖下工作?

时间:2017-09-22 13:42:25

标签: javascript reactjs

我很想知道reactjs PropTypes是如何工作的,因为我想在我正在编写的应用程序中实现类似的东西。

具体来说,我正在尝试以与reactjs相同的格式创建属性验证器(即{type}.{isRequired}语法)。

此外,我希望这样做,以便一次只存在每个验证函数的一个实例

我目前的实施如下:

// Interface
class PropTypes
{
    static string(isRequired)
    {
        return isRequired ? 
            ConcretePropTypes.string_required : 
            ConcretePropTypes.string;
    }
}

// Concrete prop validation
class ConcretePropTypes
{
    static string(x) { return typeof x == "string"; }
    static string_required(x) { return !isNan(x) && this.string(x); }
}

// Sample usage
var propTypes = { name: PropTypes.string(true) };

...但这需要使用参数(即isRequired)来确定要返回的验证函数。由于传递的布尔参数表示不直观(除非查看源代码),我更倾向于使用类似于reactjs的语法 - 即string.isRequired - 以便它消除其使用中的任何歧义。

总而言之,我正在寻找的是有关reactjs proptypes如何工作的信息,因此,我如何将其应用于我自己的代码。如果问题标题具有误导性并且需要更改,请告诉我。

0 个答案:

没有答案