Wie verwende ich PropTypes ohne Verwendung einer Klasse in einer funktionalen zustandslosen Komponente von reag?
export const Header = (props) => (
<div>hi</div>
)
Wie verwende ich PropTypes ohne Verwendung einer Klasse in einer funktionalen zustandslosen Komponente von reag?
export const Header = (props) => (
<div>hi</div>
)
Antworten:
Die offiziellen Dokumente zeigen, wie dies mit ES6-Komponentenklassen gemacht wird. Gleiches gilt jedoch für zustandslose Funktionskomponenten.
Erstens npm install
/ yarn add
das neue Prop-Typ-Paket, falls Sie es noch nicht getan haben.
Fügen Sie dann Ihre propTypes (und bei Bedarf auch defaultProps) hinzu, nachdem die zustandslose Funktionskomponente definiert wurde, bevor Sie sie exportieren.
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;
Es ist nicht anders mit dem Stateful, Sie können es hinzufügen wie:
import PropTypes from 'prop-types';
Header.propTypes = {
title: PropTypes.string
}
Hier ist ein Link zu den Requisitentypen npm
PropTypes
In diesem Fall möchten Sie React
title: PropTypes.string
Genauso wie bei klassenbasierten Komponenten:
import PropTypes from 'prop-types';
const funcName = (props) => {
...
}
funcName.propTypes = {
propName: PropTypes.string.isRequired
}
Hinweis: Je nach verwendeter React-Version müssen Sie möglicherweise prop-types
über npm install prop-types
oder installieren yarn add prop-types
.
Dies geschieht genauso wie bei klassenbasierten Komponenten
import PropTypes from "prop-types";
const = function_name => {}
function_name.propTypes = {
prop_name : PropTypes.number
. . . . . . . . . . . . . .
}
Hoffe das hilft !
Verwenden Sie seit React 15 Folgendes , propTypes
um Requisiten zu validieren und Dokumentation bereitzustellen:
import React from 'react';
import PropTypes from 'prop-types';
export const Header = (props={}) => (
<div>{props}</div>
);
Header.propTypes = {
props: PropTypes.object
};
Dieser Code unter der Annahme eines Standardwerts, props={}
wenn der Komponente keine Requisiten zur Verfügung gestellt wurden.