exemplu App face imaginea de mai sus
aplicația eșantion are o componentă principală / părinte numită app.js (prezentat mai jos) și cele două componente definite de utilizator; subiect.js și mesaj.js
import React from "react";
import "./App.css";
import Message from "./components/Message";
import Subject from "./components/Subject";function App() {
return (
<div className="App">
<Message name={"Paul"} age={12} sport={"Soccer"}>
<Subject subjects={} />
</Message>
</div>
);
}
export default App;
elemente de recuzită implicite
într-o componentă de clasă elemente de recuzită implicite pot fi fie defini în cadrul clasei ca obiect static așa cum se arată mai jos,
class Message extends Component {
static defaultProps = {
name: "Eric",
age: 10,
sport: "Soccer",
}
render() {
return (
<div>
</div>
)
}
}
sau în afara clasei așa cum se arată mai jos
class Message extends Component {
render() {
return (
<div>
</div>
)
}
}
Message.defaultProps = {
name: "Eric",
age: 10,
sport: "Soccer",
}
în componenta funcțională, valorile implicite pot fi introduse folosind sintaxa argumentelor implicite ca așa
function Message({name="Eric",age"=10, sport ="Soccer"}){
return(
<div>
</div>
)
}
putem folosi și Message.defaultProps={}
prezentat mai sus.
PropTypes
PropTypes sunt o caracteristică de validare react recuzita . Cu PropTypes putem specifica tipul de date de recuzită așa cum se arată mai jos. de exemplu, putem trece nume, sport, și sport recuzită la o instanță a componentei mesaj; <Message name={"Eric} age={10} sport={"Soccer"} />
. nume, sport sunt atât de tip de date șir și vârsta propunerii este un tip de date număr. Când este furnizată o valoare incorectă pentru o recuzită, o eroare va fi afișată în consola
Message.propTypes = {
name: PropTypes.string,
age: PropTypes.number,
sport: PropTypes.string,
};
în React, o componentă poate avea unul, mulți sau nu copii. Acest copil ar putea fi un element de reacție sau șir sau alt tip de date. Cu PropTypes.element
putem specifica că doar un singur copil poate fi transmis unei componente ca și copii. Mai mult, copilul unic trebuie să fie un element React; poate fi un element JSX obișnuit (elemente React care reprezintă etichete DOM) sau o altă componentă React, dar nu poate fi un șir. Cu PropTypes.element
, nu este afișat niciun avertisment pe consolă dacă nu este trecut niciun element React. Cu toate acestea, cu PropTypes.element.isRequired
avem nevoie de un singur copil este trecut; Message.propTypes={children: PropTypes.element.isRequired}
dar înainte de a folosiPropTypes.element
trebuie să folosimthis.props.children
în componenta mesajului. this.props.children
— o recuzită specială care este transmisă automat componentelor
class Message extends React.Component {
render() {
let name = this.props.name;
let age = this.props.age;
let sport = this.props.sport;
let children = this.props.children;
return (
<div>
<h3>
My name is {name}, I am {age} old and I love playing {sport}{" "}
</h3>
<div>{children}</div>
</div>
);
}
}
rezumat
am arătat cum să folosim recuzita implicită și cum să verificăm tipul pe recuzita React cu PropTypes. Am discutat, de asemenea, un React special prop – this.props.children