我创建了自己的基本组件,我希望所有基本组件继承自该基本组件
public class BaseComponent : ComponentBase
{
// ...
}
页面组件:
@page "/apage"
@inherits BaseComponent
<CascadingValue Value="this">
<div>
<MyOtherComponent />
</div>
</CascadingValue>
我想在MyOtherComponent中做
:[CascadingParameter]
public BaseComponent BaseComponent { get; set; }
到这里所有作品。但是我想改进,我希望每个页面组件都应该制作CascadingValue Value="this"
,因为从BaseComponent继承的每个页面都应该为需要该引用的所有子组件提供BaseComponent引用。
因此页面组件应如下所示:
@page "/apage"
@inherits BaseComponent
<div>
<MyOtherComponent />
</div>
CascadingValue Value =“ this”的逻辑应移至BaseComponent。
我该怎么办?
答案 0 :(得分:2)
我找到了另一个解决方案:
我创建了带有接口的服务类。
public interface IStateService
{
bool Pening { get; set; }
}
public class StateService : IStateService
{
public bool Pening { get; set; }
}
并将其添加到program.cs
builder.Services.AddScoped<IStateService, StateService>();
比我将其注入BaseComponent.cs
[Inject]
public IStateService StateService { get; set; }
如果需要,所有其他组件(例如MyOtherComponent)也可以注入它。