【问题标题】:Required cascading parameters in Blazor componentsBlazor 组件中所需的级联参数
【发布时间】:2022-01-20 21:14:37
【问题描述】:
[Parameter, EditorRequired]
public int Parameter { get; set; } = default!;

[CascadingParameter, EditorRequired]
public int Parameter2 { get; set; } = default!;

EditorRequired 属性仅针对常规参数发出 RZ2012。如果我不设置级联参数,有没有办法获得编译时警告?

【问题讨论】:

  • 您认为该错误在哪里?当父母“没有设置”时,这是一个应用程序范围内的失败,很难错过。如果 Child 没有收到它,该属性放在哪里?
  • 我会像示例中一样将属性放在 CascadingParameter 旁边,以及它如何为 Parameter 工作。如果组件从未用 包装,那么我会期待像 RZ2012 这样的警告。这必须像您建议的那样在应用程序范围内进行检查。是的,这不是“很难错过”,但我更喜欢编译时检查而不是运行时失败,因为会抛出 NullPointerException。

标签: c# blazor


【解决方案1】:

我很确定它不适用于 CascadingParameter。

这是来自 ValidationSummary 的 AspNetCore 团队的代码,它需要 EditContext 级联。

        if (CurrentEditContext == null)
        {
            throw new InvalidOperationException($"{nameof(ValidationSummary)} requires a cascading parameter " +
                $"of type {nameof(EditContext)}. For example, you can use {nameof(ValidationSummary)} inside " +
                $"an {nameof(EditForm)}.");
        }

【讨论】:

    猜你喜欢
    • 2020-09-24
    • 2021-08-02
    • 1970-01-01
    • 1970-01-01
    • 2021-09-07
    • 2021-04-09
    • 1970-01-01
    • 2021-06-05
    • 1970-01-01
    相关资源
    最近更新 更多