Ber*_*ian 3 c# eventemitter blazor
我有2个分量A和B,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很新.
您可以使用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().