react-custom-proptypes
Installation
```sh $ npm install react react-dom react-custom-proptypes --save ```createPropType
Syntax
``` createPropType(callback, description) ```Parameters
callback
: function
Function that returns a boolean representing the validation of the proptype, taking a single argument: prop
, the value of the prop
description
: string
Optional. Use this value to specify a helpful description.
Usage
```jsx import React from 'react'; import { createPropType } from 'react-custom-proptypes'; const Card = props => (<div>{props.suit}</div>
<div>{props.value}</div>
prop === 'spades' ||
prop === 'hearts' ||
prop === 'diamonds' ||
prop === 'clubs',
'Must be spades
, hearts
, diamonds
, or clubs
.'
);
const valuePropType = createPropType(
prop =>
Number.isInteger(prop) &&
prop >= 1 &&
prop <= 12,
'Must be an integer from 1 - 12.'
);
Card.propTypes = {
suit: suitPropType.isRequired,
value: valuePropType.isRequired
};
export default Card;
```
createIteratorPropType
Syntax
``` createIteratorPropType(callback, description) ```Parameters
callback
: function
Function that returns a boolean representing the validation of the proptype, taking two arguments:
prop
- the value of the prop
key
- the key of the current element being processed in the iterable object.
description
: string
Optional. Use this value to specify a helpful description.
Usage
```jsx import React, { PropTypes } from 'react'; import { createIteratorPropType } from 'react-custom-proptypes'; const TweetFeed = props => ({props.tweets.map((tweet, index) => (
<div key={index}>{tweet}</div>
))}
prop => typeof prop === 'string' && prop.length < 140
)).isRequired
};
export default TweetFeed;
```