Component間のデータ授受(子⇒親)②
■子で起こした引数有のイベントを親で購読する。
●親
@page "/ParentBmi3"
<BlazorBmi.Components.BmiChild3 OnResultChanged="@ChanegResult" />
BMI:@Bmi
@code{
public double Bmi { get; set; }
private void ChanegResult(double result)
{
this.Bmi = result;
}
}
●子
<div>子のイベントを親でハンドル</div>
<div>身長:<input type="number" @bind="Height" /></div>
<div>体重:<input type="number" @bind="Weight" /></div>
<button @onclick="ClickCalc">計算</button>
@code{
public double Weight { get; set; } = 60;
public double Height { get; set; } = 170;
[Parameter]
public EventCallback<double> OnResultChanged { get; set; }
private async void ClickCalc()
{
var result = Weight / *1;
await OnResultChanged .InvokeAsync(result);
}
}
①親では、子呼び出し時に、子のCallbackイベント名と、そのイベントを
検知した時に実行したいメソッドを紐づけておく。
<BlazorBmi.Components.BmiChild3 OnResultChanged="@ChanegResult" />
OnResultChanged:子のCallbackEvent名
@ChanegResult:親に定義している、子のonResultChangedイベント検知時に
行いたい処理(メソッド名)
*1:Height / 100) * (Height / 100