【发布时间】:2020-01-02 06:32:43
【问题描述】:
我正在学习 Blazor。我没有基于组件的编程经验。
我有两个组件:DateRangePicker 和 RadzenCheckBox。
<RadzenFieldset Text="Test Component">
<DateRangePicker @ref="calendar" />
<div>
<Radzen.Blazor.RadzenCheckBox TValue="bool" Change="@((args) => txtBoxChange(args))" />
<RadzenLabel Text="Check" />
</div>
</RadzenFieldset>
现在,要求很简单。如果单击复选框,则显示两个日历,如果未选中则显示一个日历。
我写了以下代码:
@code{
DateRangePicker calendar;
public void txtBoxChange(bool args)
{
if (args == true) //shows one calendar when checked
calendar.ShowOnlyOneCalendar = true;
else //shows two calendars when unchecked
calendar.ShowOnlyOneCalendar = false;
}
}
这很好用。
但我收到警告:
组件参数“ShowOnlyOneCalendar”不应设置在其组件之外。
我已经阅读了一些关于此警告的博客,其中建议建立父子组件关系以进行组件之间的通信。但这些不是父母和孩子。
我做错了什么? 实现此类要求且没有此警告的最佳方法是什么?
【问题讨论】:
-
从 .NET Core 3.1 开始,您可以将
@code { ... }块的内容放入 separate code-behind files。让它更干净。 -
在 blazor 中改变组件属性的正确方法:stackoverflow.com/questions/59381788/…
标签: asp.net asp.net-core blazor razor-components