有没有办法在不覆盖现有类名的情况下将类名添加到 blazor 组件?

Posted

技术标签:

【中文标题】有没有办法在不覆盖现有类名的情况下将类名添加到 blazor 组件?【英文标题】:Is there a way to add a class name to a blazor component without overriding the existing class name? 【发布时间】:2021-05-02 18:44:37 【问题描述】:

假设我有一个组件 MyComponent,声明如下:

<div class="container">
  "some nested content"
</div>

现在我想使用组件,并给它一个类名:

<MyComponent class="new-class" />

如果我这样做,“容器”类名将被“新类”覆盖:

<div class="new-class">
  ....
<div>

有没有办法同时保留类名和有,最后:

<div class="container new-class">
  ....
<div>

【问题讨论】:

您说““容器”类名将被“新类”覆盖”但是如何?在 MyComponent 中会发生什么? @Vencovsky 我不确定,但它是 RenderTreeBuilder 吗? 尝试在内部组件中添加一个字符串属性,并将其添加到类标签 并在父 【参考方案1】:

您应该了解“组件参数”:[Parameter]。在你的组件上,声明一个参数:

<div class="container @CssClass">
  "some nested content"
</div>

@code

   [Parameter] public string CssClass get; set; = "";

现在,当你使用你的组件时,如果你愿意,你可以给参数设置一个值:

<MyComponent CssClass="new-class" />

引用docs:

组件可以具有组件参数,这些参数是使用具有 [Parameter] 属性的组件类上的公共简单或复杂属性定义的。使用属性为标记中的组件指定参数。

【讨论】:

以上是关于有没有办法在不覆盖现有类名的情况下将类名添加到 blazor 组件?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法在不使用 XDocument 的情况下将新的 xml 数据附加到 xml 文件中的现有 xml?

无法在不覆盖的情况下将 R 数据框附加到现有 Excel 中

在不使用 Apple Developer Portal 的情况下将 UDID 添加到配置文件

SSAS - 是不是可以在不重新部署整个多维数据集的情况下将属性添加到现有维度

如何在不丢失表格视图单元格的情况下将现有集合视图添加到表格视图

有没有办法在不使用通知服务扩展的情况下将图像附加到推送通知?