blazor - 当级联参数已更改时,有没有办法在 blazor 子组件中进行判断?
问题描述
当级联参数已更改时,有没有办法在 blazor 子组件中进行判断?我在主布局中有一个组合框,我试图将选定的值级联到子组件。但不确定如何从子组件中判断值何时发生变化。这可能吗?
// MainLayout.razor file
// <CascadingValue Value="@selectedAddress.Id">
// @Body
// </CascadingValue>
The index.razor file is what is accessing the cascading parameter.
解决方案
是的,没问题。您可以在其中捕获对变量的更改get; set;
CascadeChild.razor
@Message
@code {
int _ID;
[CascadingParameter]
public int ID {
get { return _ID; }
set { int lastValue = _ID; // HERE //
_ID = value;
if (lastValue != value) DoChange(); }
}
string Message = "";
void DoChange()
{
Message = "Value has been changed to " + _ID;
}
}
父剃刀
<CascadingValue Value="CurrentValue">
<CascadeChild />
</CascadingValue>
<button @onclick="ChangeCurrentValue">Change</button>
@code {
int CurrentValue;
Random rand = new Random();
void ChangeCurrentValue()
{
CurrentValue = rand.Next();
}
}
推荐阅读
- php - 使用 Laravel Validator 检查同一行中是否存在 2 个字段的值
- kubernetes - 在 helm 中模板化外部文件
- powershell - Powershell 中的服务器运行状况报告
- tensorflow - 使用大型数据集进行 TensorFlow 训练花费的时间太长
- python - ForeignKey 的 NOT NULL 约束失败(null=True)
- machine-learning - 如何使用 U-NET 架构修复嘈杂的锯齿状分割
- javascript - 从渲染常量设置状态
- mysql - MySQL 与 Nodd js
- python - 将python函数的结果保存到列表中
- java - 有没有办法获取 AWS IoT 核心证书的通用名称