Определите класс Worker и введите значение getValue (int).
public class Worker{
public object getValue(int value){
//[...]
return something;
}
}
Тогда есть две возможности:
Решение 1
Создайте экземпляр Worker в родительском элементе обоих дочерних элементов и поместите его в оба дочерних элемента.
//PARENT
<h3>ParentComponent</h3>
<Child_1_Component Worker="@MyWorker"></Child_1_Component>
<Child_2_Component Worker="@MyWorker"></Child_2_Component>
<h3>Child_1_Component</h3>
@code {
private Worker MyWorker{ get; set; }
protected override void OnInitialized()
{
MyWorker = new Worker();
}
}
И затем дочерний элемент, где Worker - это один и тот же объект в обоих дочерних элементах:
//CHILD 1
<h1>User puts in something</h1>
<input type="text"/>
<button @onclick="@(() => Worker.getValue(10))"></button>
@code {
[Parameter]
public Worker Worker { get; set; }
}
Решение 2:
Вы перемещаете getValue (int value) в Service и определяете его в Startup.cs, тогда оба дочерних элемента имеют одинаковый экземпляр.
//Startup.cs
public void ConfigureServices(IServiceCollection services)
{
[...]
services.AddScoped<Worker>();
}
А потом Дитя, где Работник является одним и тем же объектом в обоих:
//CHILD 1
@inject Worker MyWorker
<h1>User puts in something</h1>
<input type="text"/>
<button @onclick="@(() => MyWorker.getValue(10))"></button>