0
votes

Réagir - Rendu conditionnel de la composante emballage conditionnelle JavaScript et JSX

J'essaie de rendre conditionnellement plusieurs composants partagés, mais d'obtenir une erreur:

Ligne 182: 9: Attendez une mission ou une fonction d'appel et de la scie une expression non inutilisée-expressions

Le dessous fonctionne parfaitement sans le composant wrapper. Toutefois, une nouvelle exigence client est qu'une condition de niveau plus élevée doit être placée sur tous les composants, avant d'atteindre la déclaration spécifique à la composante si elle est spécifique. Je voulais créer un composant wrapper au lieu de gonfler les énoncés existants si-else avec plus de conditions ou de code de duplication.

pour rendre cela de manière appropriée, j'ai enveloppé le si -Les déclarations avec une flèche anonyme. Mais l'erreur reste!

Toute aide serait appréciée. xxx

Le but de est de rendre son accessivres si Si ) retourne true . xxx


1 commentaires

Au lieu de retour vrai etc., juste retour! ProPs.Path suffit.


3 Réponses :


4
votes

Le enfants fourni à conditionnel est une fonction . Pour rendre enfants en tant que fonction (accessoires de rendu), vous devez l'exécuter comme ceci xxx


0 commentaires


1
votes

Je pense que la question est que votre EnhancedSections.map em> ne renvoie rien.

return (
    <Grid container>
      {enhancedSections.map((section, index) => (
        <Conditional    // this is line 182
          path={section.conditional ? section.conditional.param_name : null }
          section={section}
        >
          {() => {
            if (   // these series of if-else statements renders perfectly without the <Conditional/> wrapper
              section.style == "single_select" &&
              section.section_display_name == selectedSection
            ) {
                return (
                  <SingleSelect
                    key={section.definition.display_name}
                    displayName={section.definition.display_name}
                    description={
                      section.definition.description
                        ? section.definition.description
                        : null
                    }
                    path={{ id: id, field: `${section.field}` }}
                  />
                );
              } else if (
                section.style == "boolean" &&
                section.section_display_name == selectedSection
              ) {
                return (
                  <Boolean
                    key={section.definition.display_name}
                    displayName={section.definition.display_name}
                    description={section.definition.description}
                    path={{ id: id, field: `${section.field}` }}
                  />
                );
              } else if (
                ...   // more conditional cmps here 
              )
          }}
        </Conditional>
      ))
     }
    </Grid>
  );


0 commentaires