Articles

React Basis: Default Props ja Typechecking with PropTypes.

tässä blogissa käydään läpi kaksi React-perusaihetta, kuten oletusasetukset rekvisiitta ja typechecking PropTypes. Rekvisiitta on objekti, joka siirtyy komponentista toiseen (esimerkiksi vanhemman komponentista lapsen komponenttiin). Jos jostain syystä emme anna rekvisiittaa lapsen komponenttiin, Voimme käyttää oletuksena rekvisiittaa lapsen komponenttiin, jotta sovellus ei rikkoudu. Tämän blogin esimerkkisovellus näkyy alla ja github repo on täällä.

näytesovellus kääntää yllä olevan kuvan

näytesovelluksessa on pää/kantakomponentti nimeltään app.js (alla) ja kaksi käyttäjän määrittelemää osaa; aihe.js ja viesti.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;

Default Props

luokan komponentin default props voidaan joko määritellä luokan sisällä staattiseksi objektiksi kuten alla,

class Message extends Component {
static defaultProps = {
name: "Eric",
age: 10,
sport: "Soccer",
}
render() {
return (
<div>
</div>
)
}
}

tai luokan ulkopuolella kuten alla

class Message extends Component {
render() {
return (
<div>
</div>
)
}
}
Message.defaultProps = {
name: "Eric",
age: 10,
sport: "Soccer",
}

funktionaalisessa komponentissa oletusarvot voidaan esittää oletusargumenttien syntaksilla kuten niin

function Message({name="Eric",age"=10, sport ="Soccer"}){
return(
<div>
</div>
)
}

voidaan käyttää myös Message.defaultProps={} yllä.

Proptyypit

Proptyypit ovat React-rekvisiittaominaisuus . Kanssa PropTypes voimme määrittää tietotyyppi rekvisiitta kuten alla. esimerkiksi voimme siirtää nimen, urheilun ja sport rekvisiitan sanomakomponentin ilmentymälle; <Message name={"Eric} age={10} sport={"Soccer"} /> . nimi, urheilu ovat molemmat merkkijono tietotyyppi ja ikä prop on numero tietotyyppi. Kun rekvisiitalle annetaan virheellinen arvo, virhe näkyy konsolissa

Message.propTypes = {
name: PropTypes.string,
age: PropTypes.number,
sport: PropTypes.string,
};

Reactissa, komponentilla voi olla yksi, monta tai ei yhtään lasta. Tämä lapsi voi olla React elementti tai merkkijono tai muu tietotyyppi. Kun PropTypes.element voidaan määritellä, että vain yksi lapsi voi siirtyä komponenttiin lapsena. Lisäksi yksittäisen lapsen on oltava React-elementti; se voi olla säännöllinen JSX-Elementti (React elements that represent Dom tageja) tai muu React-komponentti, mutta se ei voi olla merkkijono. Kun PropTypes.element, konsolissa ei näy varoitusta, jos React-elementtiä ei ohiteta. Kuitenkin PropTypes.element.isRequired edellytämme yhden lapsen läpimenoa; Message.propTypes={children: PropTypes.element.isRequired}

mutta ennen kuin käytämme PropTypes.element on käytettävä this.props.children Viestiosassa. this.props.children — erityinen rekvisiitta, joka siirtyy komponentteihin automaattisesti

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>
);
}
}

Yhteenveto

olemme näyttäneet, miten käytetään oletusrekvisiittaa ja miten tehdään typechecking React props with PropTypes. Olemme myös keskustelleet erityisestä Reaktioehdosta – this.props.children