--- lang: ja-jp breaks: true --- # Razorコンポーネントのパラメータは自動プロパティにする必要があるらしい 2024-01-19 > How to handle Warning:BL0007 on a Component with a DxCheckBox only > https://supportcenter.devexpress.com/ticket/details/t1137771/how-to-handle-warning-bl0007-on-a-component-with-a-dxcheckbox-only > Consider an analyzer to warn if a [Parameter] property isn't a simple auto property #26230 > https://github.com/dotnet/aspnetcore/issues/26230 ## 以下のコンポーネントでは警告が発生する ```csharp= <a href="@Href" target="_blank" rel="noopener noreferrer">@Href</a> <br /> @code { public TagA() => Href = ""; private string? m_hrefValue; [Parameter] public string? Href { get => m_hrefValue; set { if (m_hrefValue != value) { m_hrefValue = value; StateHasChanged(); } } } } ``` ```log= warning BL0007: Component parameter 'XXXXXXXX.Pages.TagA.Href' should be auto property ``` ## 以下のように修正すると警告は出ない ```csharp= <a href="@Href" target="_blank" rel="noopener noreferrer">@Href</a> <br /> @code { public TagA() => Href = ""; /// <summary> /// パラメータは自動プロパティにする必要があるらしい。 /// </summary> [Parameter] public string Href { get; set; } protected override void OnInitialized() { HrefValue = Href; } private string? m_hrefValue; /// <summary> /// `[Parameter]`を削除。 /// </summary> public string? HrefValue { get => m_hrefValue; set { if (m_hrefValue != value) { m_hrefValue = value; StateHasChanged(); } } } } ``` ## 予期しない余分なレンダリングと上書きパラメータの変更を引き起こす副作用の報告があがっているとのこと ###### tags: `Blazor` `Razor` `コンポーネント` `自動プロパティ`