Comment passer une propriété d'état du composant père en tant qu'accessoires pour le composant enfant dans le constructeur? J'ai quelque chose comme ça :

class FatherComponent extends Component {
  constructor(props) {
    super(props);
    this.state = {
      status: true
      components: [
        { component: (
            <ChildComponent
              statusAsProps={this.state.status} />
          )
        }
      ]
    };
  }

render(){
  return(
     <div>{this.state.components[0].component}</div>
  )
}

Mais me montre que l'erreur de this.state n'est pas définie. Existe-t-il un moyen de lier « ceci » de l'état en tant qu'accessoire pour le composant enfants ?

1
Hctor Aldair Aguilar Hernndez 14 mars 2019 à 21:24

2 réponses

Meilleure réponse

Vous utilisez this.state à l'intérieur de lui-même avant même qu'il ne soit défini et attribué une valeur. C'est pourquoi le undefined. Évitez la complexité et affichez simplement le composant enfant en transmettant les accessoires requis à partir de l'état du parent.

class FatherComponent extends Component {
  constructor(props) {
    super(props);
    this.state = {
      status: true
    };
  }

  render() {
    return (
      <div>
        <ChildComponent statusAsProps={this.state.status} />
      </div>
    )
  }
}
3
Hemant Parashar 14 mars 2019 à 18:30

Ce n'est pas une bonne idée de stocker des composants sur l'état. Vous pouvez simplement définir cela dans votre render

class FatherComponent extends Component {
  constructor(props) {
    super(props);
    this.state = {
      status: true
    };
  }

render(){
  return(
     <div>
      { <ChildComponent statusAsProps={this.state.status} }
     </div>
  )
}

Méthode

2
Sushanth -- 14 mars 2019 à 18:27