响应来自父组件的子事件事件

Ber*_*ian 3 c# eventemitter blazor

我有2个分量AB,B是一个孩子A.是有什么样的EventEmitter(Angular)的Blazor?如何在父级中附加可以响应其子项输出的事件处理程序?

儿童

<button onclick="Emit">Press me</button>
@functions(){
[Parameter] // i do not know how the `Output` is called
private string Pressed {get;set;}
public void Emit()
{
  //somehow emit `Pressed` to the parent , make him respond
}
}
Run Code Online (Sandbox Code Playgroud)

父组件

<Child [Pressed]="doSomething"> </Child>
@functions{
 doSomething(string value){
  Console.WriteLine("Child sent me : "+value);
 }
}
Run Code Online (Sandbox Code Playgroud)

PS对不起语法错误,我对blazor很新.

Mis*_*goo 5

您可以使用Action参数

<button onclick="Emit">Press me</button>
@functions(){
[Parameter] protected Action<string> Pressed {get;set;}

public void Emit()
{
  Pressed?.Invoke("Some String");
}
}
Run Code Online (Sandbox Code Playgroud)

在Emit中,您使用条件来检查是否有人订阅了Action并调用它,并传入参数.

不要忘记,在Parent中,如果要更新页面,请在"doSomething"方法中调用StateHasChanged().