Pourquoi, dans l'exemple de pseudo-code suivant, l'enfant ne se présente pas à nouveau lorsque le conteneur change foo.bar ?
Container {
handleEvent() {
this.props.foo.bar = 123
},
render() {
return <Child bar={this.props.foo.bar} />
}
Child {
render() {
return <div>{this.props.bar}</div>
}
}
Même si j'appelle forceUpdate()
après avoir modifié la valeur dans Container, Child affiche toujours l'ancienne valeur.
13 votes
C'est votre code ? Il semble que ce ne soit pas un code React valide.
0 votes
Je pense que la valeur des props ne devrait pas changer dans le composant du conteneur mais plutôt dans le composant parent par setState et cet état devrait être mappé aux props du conteneur.
0 votes
Utilisez l'opérateur d'étalement comme ceci <Child bar={...this.props.foo.bar} />
2 votes
@AdrianWydmanski et les 5 autres personnes qui ont voté pour : fr.wikipedia.org/wiki/Pseudocode
0 votes
@PiyushPatel les props sont mis à jour lorsqu'un composant est rendu à nouveau in-place comme le montre l'exemple de pseudo-code. Un autre exemple de ceci est quelque chose comme l'utilisation de
<Route exact path="/user/:email" component={ListUserMessagePage} />
un lien sur la même page mettra à jour les accessoires sans créer une nouvelle instance et sans exécuter les événements habituels du cycle de vie.0 votes
@Tuomas Toivonen, Avez-vous trouvé la solution à votre question. Pouvez-vous accepter ou suggérer une solution ?