Zugriff auf die Elternkomponentenvariable in der untergeordneten Komponente

r669

Ich versuche, eine Variable aus einer übergeordneten Komponente in untergeordneten Komponenten zu verwenden und sie über die Methode einer anderen Variablen festzulegen.

Allerdings kann ich es nicht verwenden. Kann mir bitte jemand bei der Umsetzung helfen.

Übergeordnete Komponente

@Component({
  ...,
  template: `<child [var1]="var1" [var2]="var2"><child>`
})
export class ParentComponent implements onInit {

  var1: any;
  var2: any;

  ngOnInit(): void {
    this.dataService.subscribe(data => {
      this.var1.push(data);
    });
  }
}

Untergeordnete Komponente

@Component({
  selector: 'child',
  ...
})
export class childComponent implements OnInit{

  @Input() var1:any;

  private var2Value: any;
  @Input() get var2(): any {
    return this.var2Value;
  }
  set var2(val){
    console.log(var1); //  it shows undefined in the console.
  }

  ngOnInit(): void {
    console.log(var1);
  }
}

Wenn ich es in der set-Methode einer anderen Variablen in der untergeordneten Komponente verwende, wird in der Konsole undefiniert angezeigt. Aber wenn ich es in der ngOnInit-Methode in der untergeordneten Komponente verwende, werden die Daten in der Konsole angezeigt.

IDK4real

Ich würde mit der Typisierung Ihrer Komponenten beginnen. Typescript existiert, weil wir der Meinung sind, dass Typisierung die Entwicklung unterstützt. Sie sollten es hier so anwenden, dass Sie Folgendes erhalten:

In der übergeordneten Komponente:

  var1: any[];
  var2: any[];

In der untergeordneten Komponente:

@Input() var1: any[];

Als nächstes gibt es einen Fehler in Ihrem Code, der besagt, dass var1die übergeordnete Komponente nicht initialisiert wird. Aus diesem Grund können Sie nicht darauf drängen. Daher würde ich aktualisieren hat:

  var1: any[] = [];
  var2: any[];

Im Anschluss daran würde ich Ihre dataService.

Es sei denn, Ihr Dienst erstreckt sich von Subscriptionoder ähnlich, Sie können abonnieren nicht direkt aufrufen, daher würde ich überprüfen, ob Sie die richtige Eigenschaft aufrufen, da das Folgende seltsam erscheint:

    this.dataService.subscribe(data => {
      ...
    });

Als letztes würde ich prüfen, was für eine Art Subjectdieses Observable ist ( dataService.subscrive). Ich habe Ihren Code mit a ausprobiert setIntervalund es gelingt mir, die Werte in beiden zu erhalten.

Ich würde auch raten, dass Folgendes nicht gleich ist:

  1. <child [var2]="var2" [var1]="var1"></child>
  2. <child [var1]="var1" [var2]="var2"></child>

Die 1º übergibt den Wert var2vor dem var1eingestellt wird. Die 2º übergibt den Wert, var2nachdem var1eingestellt wurde. Dies liegt daran, dass Angular die Eingaben gemäß der im HTML-Code angegebenen Reihenfolge übergibt. Wenn Sie also den HTML-Code wie im ersten Fall schreiben, var1wird in der setvon undefiniert, var2aber in der ngOnInit().

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

Svelte - Zugriff auf die Methode der untergeordneten Komponente

Vue - Zugriff auf Requisiten in der untergeordneten Komponente

Zugriff auf den Status der untergeordneten Komponente

Zugriff auf übergeordnete Daten in der untergeordneten Komponente

Angular2 - Zugriff auf die Variable der übergeordneten Komponente von der untergeordneten Komponente

Zugriff auf die übergeordnete Komponente von der untergeordneten Komponente in Winkel 9

Reactjs: Zugriff auf den Zustand der untergeordneten Komponente. Von einer Methode in der übergeordneten Komponente, die vom Zustand der untergeordneten Komponente abhängt

Vue.js - Zugriff auf die berechnete Eigenschaft der untergeordneten Komponente (Vuetify Data Tables)

Angular2-Zugriff auf die Methoden in der untergeordneten Komponente vom übergeordneten Element

Vue & Typescript: So vermeiden Sie TS-Fehler beim Zugriff auf die Methoden der untergeordneten Komponente

Die in der untergeordneten Komponente übergebene und aufgerufene Funktion hat keinen Zugriff auf den übergeordneten Statuswert

Zugriff auf den Statuswert der Stammkomponente in der untergeordneten Komponente

Zugriff auf den untergeordneten Statuswert in der übergeordneten Komponente in React

React.js Zugriff auf den Eingabewert in der untergeordneten Komponente

Winkel 4 - Zugriff auf Ereignisse der untergeordneten Komponente ohne EventEmitter

Zugriff auf die Komponente von der Steuerung

Greifen Sie auf die untergeordnete Komponente in der untergeordneten Komponente des untergeordneten Mount zu

Reagieren - Ruft die übergeordnete Methode in der untergeordneten Komponente auf

Zugriff auf den Status der untergeordneten Komponente auf andere Weise als unter ref?

Winkel 7 - Zugriff auf die dynamische Eigenschaft des untergeordneten Elements über die übergeordnete Komponente

Zugriff auf die Komponente der ActivatedRoute im canActivate Guard

Zugriff auf die Schlüsseleigenschaft der React-Komponente

Zugriff auf die Komponente $ scope innerhalb der Direktive in 1.5

Zugriff auf die Eigenschaften einer Vue-Komponente in den untergeordneten HTML-Knoten

Zugriff auf die ViewModel-Eigenschaft einer übergeordneten Komponente über das ViewModel des untergeordneten Elements in Aurelia

Angular2: Zugriff auf übergeordnete Klassenvariable / Funktion der untergeordneten Komponente

Svelte-Zugriff auf eine Speichervariable im Skript-Tag der untergeordneten Komponente

Zugriff auf das übergebene Prop-Array innerhalb der untergeordneten Komponente

Sendeparameter der untergeordneten Komponente an die übergeordnete Komponente