Articles

React Basis: Standaard Props en Typecheck met PropTypes.

In deze blog bespreken we twee fundamentele react-onderwerpen, waaronder defaults props en typecheckingmet PropTypes. Rekwisieten zijn objecten die van het ene naar het andere component worden doorgegeven (bijvoorbeeld van een oudercomponent naar een dochtercomponent). Als wat voor reden dan ook we niet aan de props doorgeven aan het kind component, we kunnen standaard props gebruiken in het kind component om te voorkomen dat de app breken. De voorbeeldapp voor deze blog wordt hieronder getoond en de GitHub repo is hier.

sample app maakt de afbeelding hierboven

De voorbeeldapp heeft een hoofd – /oudercomponent genaamd app.js (hieronder weergegeven) en de twee door de gebruiker gedefinieerde componenten; onderwerp.js en bericht.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

in een klasse component default-props kan worden definiëren binnen de klas als statisch object zoals hieronder weergegeven,

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

of buiten de klas, zoals hieronder weergegeven

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

in de functionele component, de standaard waarden kunnen worden ingevoerd met behulp van standaard argumenten syntaxis zoals

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

We kunnen ook gebruik Message.defaultProps={} hierboven weergegeven.

PropTypes

PropTypes zijn een functie voor het valideren van React props . Met PropTypes kunnen we het gegevenstype van props specificeren zoals hieronder getoond. we kunnen bijvoorbeeld naam, sport en sport props doorgeven aan een instantie van de Message component; <Message name={"Eric} age={10} sport={"Soccer"} /> . naam, sport zijn zowel string data type en de leeftijd prop is een nummer data type. Wanneer een onjuiste waarde wordt opgegeven voor een prop, zal een fout worden weergegeven in de console

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

in React, kan een component één, veel of geen kinderen hebben. Dit kind kan een React element of string of ander gegevenstype zijn. Met PropTypes.element kunnen we specificeren dat slechts één kind als kind aan een component kan worden doorgegeven. Bovendien moet het ene kind een React-element zijn; het kan een gewoon JSX-element zijn (React-elementen die DOM-tags vertegenwoordigen) of een ander react-component, maar het kan geen string zijn. Met PropTypes.element, wordt er geen waarschuwing getoond op de console als er geen React element wordt doorgegeven. Echter, met PropTypes.element.isRequired vereisen we dat een enkel kind wordt doorgegeven; Message.propTypes={children: PropTypes.element.isRequired}

maar voordat we PropTypes.element gebruiken, moeten we this.props.children gebruiken in de Berichtcomponent. this.props.children — een speciale prop die automatisch wordt doorgegeven aan componenten

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

samenvatting

we hebben laten zien hoe standaard props te gebruiken en hoe typecontrole uit te voeren op react props met PropTypes. We hebben ook een speciale React prop besproken – this.props.children