问题描述
有没有办法在 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;
}
}
parent.razor
<CascadingValue Value="CurrentValue">
<CascadeChild />
</CascadingValue>
<button @onclick="ChangeCurrentValue">Change</button>
@code {
int CurrentValue;
Random rand = new Random();
void ChangeCurrentValue()
{
CurrentValue = rand.Next();
}
}