Reputation: 3239
Without using class, how do I use PropTypes in functional stateless component of react?
export const Header = (props) => (
<div>hi</div>
)
Upvotes: 125
Views: 72517
Reputation: 6239
The official docs show how to do this with ES6 component classes, but the same applies for stateless functional components.
Firstly, npm install
/ yarn add
the prop-types package if you haven't already.
Then, add your propTypes
(and defaultProps
too if required) after the stateless functional component has been defined, before you export it.
import React from "react";
import PropTypes from "prop-types";
const Header = ({ name }) => <div>hi {name}</div>;
Header.propTypes = {
name: PropTypes.string
};
// Same approach for defaultProps too
Header.defaultProps = {
name: "Alan"
};
export default Header;
Upvotes: 180
Reputation: 1255
Since React 15, use propTypes
to validate props and provide documentation this way:
import React from 'react';
import PropTypes from 'prop-types';
export const Header = (props={}) => (
<div>{props}</div>
);
Header.propTypes = {
props: PropTypes.object
};
This code on the assumption of default value props={}
if no props provided to the component.
Upvotes: -1
Reputation: 1597
It's done the same way you do with Class Based Components
import PropTypes from "prop-types";
const = function_name => {}
function_name.propTypes = {
prop_name : PropTypes.number
. . . . . . . . . . . . . .
}
Hope This Helps !
Upvotes: 2
Reputation: 948
Same way you do in class based components:
import PropTypes from 'prop-types';
const funcName = (props) => {
...
}
funcName.propTypes = {
propName: PropTypes.string.isRequired
}
Note: You might have to install prop-types
via npm install prop-types
or yarn add prop-types
, depending on the React version you are using.
Upvotes: 1
Reputation: 4220
It isn't different with the stateful, You can add it like:
import PropTypes from 'prop-types';
Header.propTypes = {
title: PropTypes.string
}
Here is a link to prop-types npm
Upvotes: 33