是否可以使用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(使用前将#替换为@)