Blazor Webassembly配置(appsettings.json)最初在组件中加载空值



Blazor WebAssembly应用程序在执行导致Null的方法后加载配置值。初始化后,它将返回正确的值。

我遵循了Microsoft文档。

应用程序设置文件:

wwwroot/appsettings.json

我的组件.razor:

@page "/"
<h1>Configuration example</h1>
<p>Message: @Configuration["message"]</p>
@code {
protected override async Task OnParametersSetAsync()
{
await trying to read Configuration["Message"];
}
}

我的程序.cs文件:

public class Program
{
public static async Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("app");
builder.Services.AddTransient(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
await builder.Build().RunAsync();
}
}

我的导入剃须刀(_I(

@using System.Net.Http
@using System.Net.Http.Json
@using Microsoft.AspNetCore.Components.Forms
@using Microsoft.AspNetCore.Components.Routing
@using Microsoft.AspNetCore.Components.Web
@using Microsoft.AspNetCore.Components.WebAssembly.Http
@using Microsoft.Extensions.Configuration
@using Microsoft.JSInterop
@inject IConfiguration Configuration;

注意:要明白,我得到的值是正确的,但总是先为null,然后用正确的值重新渲染,我使用OnParametersSetAsync((作为入口点,我知道每次参数更改时OnParametersSet异步((都会更改。但是配置值应该是常量而不是null,对吗

我今天尝试从appsettings.json获取连接字符串值时遇到了同样的问题。尝试重新启动Visual Studio,它就会正常工作。

组件在加载数据之前和之后实例化两次。这是为了更快地显示页面,然后加载数据。

为什么Blazor渲染组件两次

为什么Blazor生命周期方法被执行两次?

组件加载上的加载数据

https://learn.microsoft.com/en-us/aspnet/core/blazor/components/lifecycle?view=aspnetcore-3.1#预提交后的状态重新连接

它在从3.2.0更新到3.2.1 的blazor nuget包后工作

最新更新