- accessoires d'enfant composant sont transmis les valeurs de l'état des parents.
- Child a une méthode qui appelle une méthode sur Parent, qui met à jour l'état de Parent.
- Lorsque l'état du parent est mis à jour, l'une des valeurs prop de Child change. comme dans:
<Child prop1={this.state.prop1}>
Quelle est la bonne façon de tester que ce processus se déroule comme prévu?
Voici quelques exemples de code pour rendre le problème plus clairement:
//App.js
import React, { Component } from 'react';
import Content from './Content';
class App extends Component {
constructor(props){
super(props)
this.state = {
page: 'home',
}
}
gotoAbout(){
this.setState({
page: 'about',
})
}
render() {
return(
<Content page={this.state.page} gotoAbout={this.gotoAbout.bind(this)} />
)
}
}
Comme vous pouvez le voir, le composant parent App passe un accessoire, et une fonction qui peut changer la valeur de cette prop à son composant enfant, contenu.
Le composant contenu serait alors faire quelque chose comme ceci:
//Content.js
import React, { Component } from 'react';
class Content extends Component {
constructor(props){
super(props)
}
gotoAbout() {
this.props.gotoAbout()
}
render(){
if(this.props.page = 'home'){
return(
<div>
<p>this is the home content</p>
<button onClick={this.gotoAbout}></button>
</div>
)
} else {
return(
<p>this is the about content</p>
)
}
}
}
Ce qui précède est un exemple simplifié, mais je pense qu'il obtient le point à travers. Quelle serait la meilleure façon d'écrire un test pour ce type de flux de composants-prop?