useState hook étant appelé à l'intérieur de la fonction map provoquant une boucle infinie

Reikon

Je suis en train de créer un moteur de formulaire dynamique et je souhaite afficher les résultats du magasin redux lorsque le composant Résumé de la réponse est rendu. La façon dont j'ai pensé qu'il serait préférable de le faire serait d'avoir un statut `` complet '' et de le définir sur true une fois que le composant answerSummary est chargé, mais cela dans la fonction de carte ne fonctionne pas et génère l'erreur de réaction en boucle infinie.

Le code est ici:

function App() {
  let [complete, setComplete] = useState(false);
  return (
    <div>
      <h1>Form App Prototype</h1>
      <Router>
        <Switch>
          {Object.values(Database.steps).map(step => {
            step.name === 'answerSummary' ? setComplete(true) : setComplete(false);
            return (

              <Route exact path={`/${step.name}`} render={() =>
                <Step step={step} />

              }
              />
            )
          })}
        </Switch>
      </Router>
        <br></br>
        <div style={{display: complete? 'block' : 'none'}}><StoreVisual/></div>

    </div>
  );
}

export default App;

EDIT: Je sais que vous ne pouvez pas définirState à l'intérieur du rendu - je l'ai écrit de cette façon pour essayer de transmettre ce que je veux être capable de faire

Josh Pittman

Si vous ne souhaitez effectuer le rendu que <StoreVisual/>lorsqu'ils sont à la dernière étape, il peut être plus facile de configurer un hook d'état pour l'index de l'étape sur laquelle les personnes se trouvent.

 const [index, setIndex] = useState(0);

Chaque fois que quelqu'un progresse d'un pas, incrémentez cette valeur.

Vous devrez passer setIndex, ou ce que vous appelez votre passeur, dans le Stepcomposant pour ce faire.

Ensuite, vous pouvez rendre <StoreVisual/>avec un conditionnel, comme ça ...

<div>
      <h1>Claimer Form App Prototype</h1>
      <Router>
        <Switch>
          {Object.values(Database.steps).map(step => 
              <Route exact 
                     path={`/${step.name}`} 
                     render={() => <Step step={step} /> }/> )}
        </Switch>
      </Router>
        <br></br>
        {Database.steps[index] === 'answerSummary' && <StoreVisual/>}
    </div>

Cette approche vous offre également un moyen simple de laisser les gens commencer au milieu du formulaire. Supposons que vous souhaitiez permettre aux utilisateurs d'enregistrer des formulaires semi-finis à l'avenir, il vous suffit de modifier / mettre à jour la valeur par défaut du hook d'index.

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

Fonction à l'intérieur du ternaire provoquant une boucle infinie

SetState à l'intérieur de UseEffect provoquant une boucle infinie

Réagir le hook UseState provoquant une boucle infinie

Si la boucle à l'intérieur de la boucle While provoque une boucle infinie

ArrayList pour l'itérateur de boucle provoquant une boucle infinie

Appel d'une fonction à partir d'une boucle while provoquant une boucle infinie

useEffect props fonction de rappel provoquant une boucle infinie

Utilisation de la fonction avec ng-repeat provoquant une boucle de résumé infinie

useState provoquant une lenteur lors de l'exécution de la fonction passée en tant que props

Boucle infinie à l'intérieur de la fonction de modèle récursive

L'utilisation du nom d'une fonction à l'intérieur de la même fonction entraînera-t-elle une boucle infinie?

Gérer la fonction de boucle infinie à l'intérieur d'un thread

React - boucle infinie utilisant la requête get lors de l'utilisation du hook useState

dispatch () de l'intérieur de la route enfant provoque une boucle infinie

Appel d'une fonction à l'intérieur d'une boucle

l'appel de fonction dans Angular à l'aide de dactylographie crée une boucle infinie

l'appel de fonction dans Angular à l'aide de dactylographie crée une boucle infinie

PYGAME: Pourquoi l'appel d'une fonction à l'intérieur de la boucle de jeu dans la boucle de jeu retarde-t-il mon jeu?

L'appel de fonction dans une boucle for rompt la boucle

malloc à l'intérieur de la fonction provoquant SIGSEV

Boucle infinie d'appels AngularJS lors de l'appel d'une fonction ?

Passer des valeurs à un appel de fonction créé dynamiquement à l'intérieur d'une boucle

Appel de fonction asynchrone à l'intérieur de la boucle While

Assigner des éléments de liste avec une boucle for provoquant une boucle infinie

SwiftUI: l'appel d'une fonction dans le corps de la vue qui modifie EnvironmentObject entraîne une boucle infinie et un plantage de l'application

Fonction d'appel plusieurs fois à l'intérieur de la boucle while

Fonction d'appel plusieurs fois à l'intérieur de la boucle while

sscanf () provoquant une boucle infinie en modifiant la valeur d'index de la boucle for

Boucle infinie lors de l'utilisation de?: Condition à l'intérieur de la boucle "for"

TOP liste

  1. 1

    comment afficher un bouton au-dessus d'un autre élément ?

  2. 2

    impossible d'obtenir l'image d'arrière-plan en plein écran dans reactjs

  3. 3

    Je continue à obtenir l'objet 'WSGIRequest' n'a pas d'attribut 'Get' sur django

  4. 4

    comment supprimer "compte de connexion google" à des fins de développement - actions sur google

  5. 5

    Conversion double en BigDecimal en Java

  6. 6

    Impossible d'accéder à la vue personnalisée pendant le test de l'interface utilisateur dans XCode

  7. 7

    Algorithme: diviser de manière optimale une chaîne en 3 sous-chaînes

  8. 8

    Passer la taille d'un tableau 2D à une fonction ?

  9. 9

    Comment obtenir l'intégration contextuelle d'une phrase dans une phrase à l'aide de BERT ?

  10. 10

    Comment changer le navigateur par défaut en Microsoft Edge pour Jupyter Notebook sous Windows 10 ?

  11. 11

    CSS: before ne fonctionne pas sur certains éléments,: after fonctionne très bien

  12. 12

    Comment créer un bot à compte à rebours dans Discord en utilisant Python

  13. 13

    Comment ajouter une entrée à une table de base de données pour une combinaison de deux tables

  14. 14

    Exporter la table de l'arborescence vers CSV avec mise en forme

  15. 15

    Comment activer le message Pylint "too-many-locals" dans VS Code?

  16. 16

    Créer un système Buzzer à l'aide de python

  17. 17

    Spring @RequestParam DateTime format comme ISO 8601 Date Heure facultative

  18. 18

    Empêcher l'allocation de mémoire dans la génération de combinaison récursive

  19. 19

    Déplacement des moindres carrés d'ajustement pour les déplacements de points ayant des problèmes

  20. 20

    Comment choisir le nombre de fragments et de répliques Elasticsearch

  21. 21

    Microsoft.WebApplication.targets

chaudétiquette

Archive