WASM Blazor 在用作嵌套组件的参数时将内部对象报告为 null (VS2022/.Net core 6)
Posted
技术标签:
【中文标题】WASM Blazor 在用作嵌套组件的参数时将内部对象报告为 null (VS2022/.Net core 6)【英文标题】:WASM Blazor is reporting an inner object as null when used as a parameter to a nested component (VS2022/.Net core 6) 【发布时间】:2021-12-05 04:47:26 【问题描述】:我已经建立了一个非常简单的例子:
tester.razor:
@page "/test"
@using VetJobSearch.UI.ViewModels
<EditForm Model=@outerClass>
<OuterComponent OuterClass="@outerClass"/>
</EditForm>
OuterComponent.razor:
@using ViewModels
<InnerComponent InnerClass=OuterClass.InnerClass/>
@code
[Parameter] public OuterClass OuterClass get; set; = new OuterClass()
InnerClass = new InnerClass() ;
InnerComponent.razor:
@using ViewModels
<div>Inner Component</div>
<InputText @bind-Value=InnerClass.InnerText />
@code
[Parameter] public InnerClass InnerClass get; set; = new InnerClass();
这里是类本身:
public class OuterClass
public string? OuterText get; set;
public InnerClass? InnerClass get; set;
public class InnerClass
public string? InnerText get; set;
我一定是错过了什么,因为每次我运行它,我都会得到:
未处理的异常渲染组件:对象引用未设置为 一个对象的实例。
System.NullReferenceException:对象引用未设置为对象的实例。
任何帮助将不胜感激!
【问题讨论】:
请出示您的outerClass
对象。你是不是用new OuterClass()
把它幻化了?
它实际上是在顶部“文件”中实例化的:OuterComponent.razor:
如果您没有为 OuterClass 参数分配值,它将是默认值。我正在寻找的是你为你的模型分配了什么outerClass
?它可能只是new OuterClass()
属性null
值InnerClass
哦!我忘记了那个代码(我把它放在代码隐藏文件中)。我加一下
其实就是这样...我混淆了参数变量。谢谢!!!
【参考方案1】:
原来我错过了最外面的声明。谢谢 iamrafelperez!
【讨论】:
以上是关于WASM Blazor 在用作嵌套组件的参数时将内部对象报告为 null (VS2022/.Net core 6)的主要内容,如果未能解决你的问题,请参考以下文章
Blazor WASM - 分成多个组件 (MudBlazor)