Tanpa menggunakan class, bagaimana cara menggunakan PropTypes dalam komponen stateless fungsional react?
export const Header = (props) => (
<div>hi</div>
)
Tanpa menggunakan class, bagaimana cara menggunakan PropTypes dalam komponen stateless fungsional react?
export const Header = (props) => (
<div>hi</div>
)
Jawaban:
Dokumen resmi menunjukkan bagaimana melakukan ini dengan kelas komponen ES6, tetapi hal yang sama berlaku untuk komponen fungsional tanpa negara.
Pertama, npm install
/ yarn add
yang prop-jenis baru mengemas jika Anda belum melakukannya.
Kemudian, tambahkan propTypes Anda (dan defaultProps juga jika diperlukan) setelah komponen fungsional tanpa status telah ditentukan, sebelum Anda mengekspornya.
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;
Tidak berbeda dengan stateful, Anda dapat menambahkannya seperti:
import PropTypes from 'prop-types';
Header.propTypes = {
title: PropTypes.string
}
Berikut ini tautan ke prop-types npm
PropTypes
sendiri dalam hal ini Anda ingin berhenti React
dan langsung sajatitle: PropTypes.string
Cara yang sama Anda lakukan di komponen berbasis kelas:
import PropTypes from 'prop-types';
const funcName = (props) => {
...
}
funcName.propTypes = {
propName: PropTypes.string.isRequired
}
Catatan: Anda mungkin harus menginstal prop-types
melalui npm install prop-types
atau yarn add prop-types
, tergantung pada versi React yang Anda gunakan.
Ini dilakukan dengan cara yang sama seperti yang Anda lakukan dengan Komponen Berbasis Kelas
import PropTypes from "prop-types";
const = function_name => {}
function_name.propTypes = {
prop_name : PropTypes.number
. . . . . . . . . . . . . .
}
Semoga ini membantu !
Sejak React 15 , gunakan propTypes
untuk memvalidasi props dan sediakan dokumentasi dengan cara ini:
import React from 'react';
import PropTypes from 'prop-types';
export const Header = (props={}) => (
<div>{props}</div>
);
Header.propTypes = {
props: PropTypes.object
};
Kode ini menggunakan asumsi nilai default props={}
jika tidak ada props yang diberikan ke komponen.