如何在 Blazor 组件中强制执行参数?

How do I enforce a parameter in a blazor component?

<MyComponent MyParameter="@MyParameter"></MyComponent>

我希望 MyComponent 标签在没有值提供给 时抛出错误MyParameter 参数.

其他两个答案都有效,但我会这样做:

    public override Task SetParametersAsync(ParameterView parameters)
    {
        parameters.SetParameterProperties(this);
        if (MyParameter == null)
            throw new InvalidOperationException($"{nameof(MyComponent)} requires a {nameof(MyParameter)} parameter.");

        return base.SetParametersAsync(ParameterView.Empty);
    }

为什么? SetParametersAsync是组件上Renderer调用的入口方法:没有组件代码运行。如果,假设您在 OnParametersSet{Async} 中进行了检查,您可能已经尝试在 OnInitialized{Async} 中使用它 - 您还没有告诉我们为什么必须设置它!