0
votes

@Inguiser un tableau indéfini

J'ai un composant enfant mis en œuvre dans le composant parent où je passe des données sur le composant enfant. Mais quand j'essaie d'utiliser le tableau, je reçois toujours un indéfini.

Comment puis-je résoudre ce problème? P> xxx pré>

parent.component.html p>

<app-selection-field [data]="units"></app-selection-field>


7 commentaires

Pouvez-vous créer un petit exemple sur Stackblitz.com?


Pouvez-vous montrer le code parent et l'endroit où vous dites que vous transmettez les données à l'enfant?


Comment unités est-il attribué?


Unités: chaîne [] = ['mm', 'kg', 'stk'];


Veuillez fournir un Stackblitz qui reproduit votre problème. Voyant maintenant comment vous attribuez des données, votre code devrait fonctionner correctement. Et vous dites i d'une erreur , quelle erreur serait-ce? Puisque vous dites également que vous pouvez voir les données.


Stackblitz.com/edit/angular-grx2rf


Lorsque vous fournissez un Stackblitz, assurez-vous qu'il s'agit d'un TRAVAILLE Stackblitz. Voici un TRAVAILLE Stackblitz, et nous pouvons voir que le code que vous avez fourni fonctionne comme il faut: Stackblitz.com/edit/angular-jp8che?file=app/...


3 Réponses :


1
votes

Vous n'avez pas inclus aucune alèse. Donc, votre reliure de la propriété parente de la propriété doit être Data xxx

dans votre composant enfant, comme vous avez défini xxx


1 commentaires

Je l'ai fait, mais j'ai oublié de l'écrire dans ma question. J'ai édité ma question.



2
votes

Cela pourrait dépendre de la façon dont vous créez votre matrice de données.

  • s'il est observable:

    1ère solution Pour implémenter interface Onchanges . Parce que Observable obtient data asynchrone et simplement analysé par le composant. Donc, vous ne pourrez peut-être pas imprimer data dans ngoninit () méthode, car data pourrait venir juste après l'initialisation de la composante. < Pré> xxx

    2e solution
    Utilisez settimeout () méthode, mais c'est une très mauvaise pratique.


    • s'il s'agit d'un tableau statique (codé dur)

      Cela devrait fonctionner tel quel. Ou essayez d'utiliser les mêmes méthodes qui sont ci-dessus.


      Veuillez également lire sur Component Lifecycle


3 commentaires

Eh bien, op dit que les données sont attribuées unités: chaîne [] = ['mm', 'kg', 'stk']; async ne devrait pas être le problème.


Aussi, il y a déjà répondu au même type de question: Stackoverflow.com/a/39219751/5272951 @ AJT_82


Qu'est-ce que cette question a à voir avec cette question?



0
votes

J'ai compris où provient l'erreur. Dans mon composant parent, j'ai plusieurs champs de sélection et l'un d'entre eux n'a pas reçu correctement les données, ce qui est indéfini. Je pensais que c'était le champ de sélection dont nous parlons. Après un rapide si / sinon, cela fonctionne maintenant. Merci à tous!


0 commentaires