0
votes

Rendu conditionnel React-Redux

J'ai un problème que je ne peux pas comprendre. J'ai un élément de composant à l'intérieur, j'utilise un plugin de table de réact.

sur ComposantDidDmount Code> Je dois appeler Redux Action qui obtiennent des données d'API, puis je transmetce ces données à la table de réaction. P>

Voici mon ComposantDidDmount Strong> sur laquelle j'appelle Redux Strux> Action. P>

 if (this.props.getDataReducer.items != null) {
        return (<div>
            <p>Loading...</p>
        </div>);
      } else { 
     return(
          <ReactTable className="-striped -highlight"
              data={this.props.getDataReducer.items}
              columns={columns} 
                                 />
       )
}


1 commentaires

Essayez si (ceci.props.getdatareducer.items) {// réagit table} else {// Chargement}


3 Réponses :


0
votes

Vous pouvez rendre la condition plus simple à manipuler pour indéfini et null: xxx

Une plus bonne pratique pour la clarté du code, il est préférable d'avoir des fonctions personnalisées gérer ces conditions, de sorte que Render () n'a qu'un retour .


0 commentaires

1
votes
  1. Votre état initial est un tableau mais je suppose que vous vouliez un objet. xxx

    ce que vous voulez est xxx

    pour le mettre en mots, dans le premier cas getdatareducer renvoie un Array avec {éléments: null} dans la première position,
    Donc, pour obtenir éléments vous devez getdatareducer [0] .items .
    Mais si vous le modifiez à un objet, vous pouvez simplement, getdatareducer.items .

    1. et plus important encore, votre logique de contrôle est inversée. xxx

      doit être xxx

      1. envisagez de refactoring et d'ajouter un ischarger la variable dans votre état,
        que vous devez définir sur true dans le fetch_data_start et à false dans le succès succès et échec cas.
        Vérification si les éléments sont null ne signifie pas nécessairement qu'ils sont en cours de chargement, car votre application et votre code augmentent, il est préférable d'être plus précis sur ce que vous voulez dire.

0 commentaires

0
votes

Je pense que le problème que vous rencontrez est de définir votre état pour vérifier spécifiquement une valeur null. Vous devriez vérifier si les articles sont simplement une valeur «forte» forte>. Étant donné que la propriété de données de React-Table accepte une matrice, vous devez également vérifier que les articles ont une longueur aussi.

1) Mettez à jour la condition dans votre composant P>

let initialState = {
    items: null
}


0 commentaires