1. ホーム
  2. アンギュラー

[解決済み】Angularの@ViewChild()のエラーです。2つの引数を期待したが、1つを得た

2022-03-29 12:38:18

質問

ViewChildを試したところ、エラーが発生しました。エラーは "An argument for 'opts' was not provided.".です。

ViewChildは両方ともエラーになります。

import { Component, OnInit, ElementRef, ViewChild, Output, EventEmitter } from '@angular/core';
import { Ingredient } from 'src/app/shared/ingredient.model';

@Component({
  selector: 'app-shopping-edit',
  templateUrl: './shopping-edit.component.html',
  styleUrls: ['./shopping-edit.component.css']
})
export class ShoppingEditComponent implements OnInit {

@ViewChild('nameInput') nameInputRef: ElementRef;
@ViewChild('amountInput') amountInputRef: ElementRef;
@Output() ingredientAdded = new EventEmitter<Ingredient>();
  constructor() {}

  ngOnInit() {
  }

  onAddItem() {
    const ingName = this.nameInputRef.nativeElement.value;
    const ingAmount = this.amountInputRef.nativeElement.value;
    const newIngredient = new Ingredient(ingName, ingAmount);
    this.ingredientAdded.emit(newIngredient);
  }

}

ts(11,2): エラー TS2554: 2 つの引数を期待したが、1 つしか得られなかった。

解決方法は?

Angular 8 では、ViewChild は 2 つのパラメータを受け取ります。

 @ViewChild(ChildDirective, {static: false}) Component