Komponentide stuktuur, kus on nn vanemad ja järglased. Jätkan eelmise näite atendust lisdades uue alamkomponendi Heading:
import React, {Component} from'react';let nimi='Juku';exportdefaultclassAppextendsComponent {constructor() {super();this.state={ loendur:0 } }klikiSyndmus() {this.setState({loendur:this.state.loendur +1}); }render () { //alati peab olema komponendi osareturn ( // render funktsioon peab midagi tagastana, see on JSX <headeronClick={this.klikiSyndmus.bind(this)}> {nimi}, oled vajutanud {this.state.loendur} korda! <Heading /> //alamkomponendi väljakutsumine </header> ); }}classHeadingextendsComponent { //alamkomponent - kasutatakse Appisrender() { //alati peab olema komponendi osareturn ( // render funktsioon peab midagi tagastana, see on JSX <h1>0</h1> ) }}
Oluline: andmeid saab edastada ülemkomponendilt (parent) alamkomponendile (child), vastupidiselt see ei toimi.
Järgnev demonstreeribki andmete edastamist parentiltchildile:
import React, {Component} from'react';let nimi='Juku';exportdefaultclassAppextendsComponent {constructor() {super();this.state={ loendur:0 } }klikiSyndmus() {this.setState({loendur:this.state.loendur +1}); }render () { //alati peab olema komponendi osareturn ( // render funktsioon peab midagi tagastana, see on JSX <headeronClick={this.klikiSyndmus.bind(this)}> <Headingloendur={this.state.loendur} /> </header> ); }}//alamkomponentclassHeadingextendsComponent {render() { //alati peab olema komponendi osareturn ( // render funktsioon peab midagi tagastana, see on JSX <h1> {nimi}, oled vajutanud {this.props.loendur} korda!</h1> ) }}
Muutuja loendur, mis sisaldab state'i, saadetakse alamkomponendile props-na.