Package Exports
- react-generate-props
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (react-generate-props) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
react-generate-props
Generate default props based on your React component's PropTypes
Installation
$ npm install --save-dev react-generate-propsUsage
Define your component's propTypes.
// react-component.jsx
class Component extends React.Component {
static propTypes = {
title: React.PropTypes.string.isRequired,
count: React.PropTypes.number.isRequired,
user: React.PropTypes.shape({
loggedIn: React.PropTypes.bool.isRequired,
name: React.PropTypes.string.isRequired
}).isRequired
}
render() {
<div>
<h1>{this.props.title}</h1>
<small>{this.props.count}</small>
{this.props.user.loggedIn && <p>Hello, {this.props.user.name}.</p>}
</div>
}
}
export default Component=====
Then, pass your component to this library. It will generate reasonable defaults for all of your component's required propTypes.
// component-test.js
import generateProps from 'react-generate-props'
import Component from './react-component'
const props = generateProps(Component)
assertEqual(props, { title: 'A String', count: 1, user: { loggedIn: true, name: 'A String' } })
render(<Component {...props}/>)
/***
Result:
<div>
<h1>A String</h1>
<small>1</small>
<p>Hello, A String</p>
</div>
***/