React.PropTypes array with specific length

后端 未结 4 1510
一向
一向 2021-02-19 22:05

Is it possible to use React.PropTypes to enforce length\'s on an array?

Here is a very simple case:

const TWO_NUMBERS = PropTypes.array; // i          


        
4条回答
  •  天涯浪人
    2021-02-19 22:50

    in this case you would need to write your own special PropTypes function which react provides you to do.

    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
    }
    

    This would throw an error if TWO_NUMBERS isn't an array, isn't an array of two, and isn't an array of only integers.

    you can get information about proptype functions here:

    https://facebook.github.io/react/docs/typechecking-with-proptypes.html#react.proptypes

    its at the bottom of that example block.

提交回复
热议问题