Blazor嵌套传递

简介: Blazor嵌套传递

实现创建一个Blazor Server空的应用程序

创建一个Tab.razor 并且添加以下代码

<div>
    @Title
</div>

@code {
    [CascadingParameter]
    public string? Title { get; set; }
}

修改Index.razor组件代码

@page "/"

<CascadingValue Value="Title">
    <Tab/>
</CascadingValue>

@code{
    private string Title = "Index";
}

然后运行程序 效果如图

这里是一个简单的组件传值。但是在使用复杂的传值时是无法使用的

先展示一个错误的用法

修改Tab.razor的代码

<div>
    @Title
</div>

<h1>分界线</h1>

<div>
    @Data
</div>

@code {
   
   
    [CascadingParameter]
    public string? Title {
   
    get; set; }

    [CascadingParameter]
    public string? Data {
   
    get; set; }
}

并且修改index.razor代码

@page "/"

<CascadingValue Value="Title">
    <CascadingValue Value="Data">
        <Tab />
    </CascadingValue>
</CascadingValue>

@code{
    private string Title = "标题";

    private string Data = "Data数据展示";
}

运行效果如图,我们看到运行的数据似乎混乱,这就是多个传递的时候出现的问题,如何解决呢?我们继续看下面

我们继续来到Tab.razor 修改相关代码 ,我们发现他们的区别就是在CascadingParameter参数中添加唯一名称

<div>
    @Title
</div>

<h1>分界线</h1>

<div>
    @Data
</div>

@code {
    [CascadingParameter(Name = nameof(Title))]
    public string? Title { get; set; }

    [CascadingParameter(Name = nameof(Name))]
    public string? Data { get; set; }
}

然后来到Index.razor 修改相关代码

@page "/"

<CascadingValue Value="Title" Name="@nameof(Title)">
    <CascadingValue Value="Data" Name="@nameof(Data)">
        <Tab />
    </CascadingValue>
</CascadingValue>

@code{
    private string Title = "标题";

    private string Data = "Data数据展示";
}

通过Name绑定到指定的箱套参数,这样就保证了数据不会乱的问题,如果存在多个参数需要箱套传递的话请使用类而不是但个参数,原因就是单个参数需要一个一个去传递并且指定Name,并且更容易维护,(可能有人问为什么用nameo而不是字符串,当你重命名的话很有用!)

来自token的分享

Blazor技术交流群:452761192

目录
相关文章
|
人工智能 开发工具 网络架构
魔哈:Grok国内镜像
xAI 宣布正式开源 3140 亿参数的混合专家(MoE)模型「Grok-1」,以及该模型的权重和网络架构。这也使得Grok-1成为当前参数量最大的开源大语言模型。
1158 0
 魔哈:Grok国内镜像
|
12月前
|
JavaScript 前端开发 测试技术
如何测试 CORS 是否正常工作?
通过以上多种方法的综合测试,可以全面地检查 CORS 是否正常工作,及时发现和解决跨域资源共享中可能存在的问题,确保不同源的网页和服务器之间能够正常地进行数据交互。
1180 60
|
12月前
|
机器学习/深度学习 人工智能 搜索推荐
AI在医疗领域的革命:智能诊断系统的未来
在科技日新月异的今天,人工智能(AI)技术正逐渐渗透到我们生活的每一个角落,其中医疗领域尤为显著。本文将探讨AI在医疗诊断中的应用及其带来的变革,重点介绍智能诊断系统的发展现状与未来趋势。通过深入浅出的方式,我们将揭示AI如何改变传统医疗模式,提高诊断效率和准确性,最终造福广大患者。
|
存储 关系型数据库 MySQL
【MySQL】1.在Centos 7上如何卸载/安装/配置MySQL(保姆级教程)
【MySQL】1.在Centos 7上如何卸载/安装/配置MySQL(保姆级教程)
501 3
|
小程序 前端开发 C#
C#微信公众号HIS预约挂号系统源码
微信公众号预约挂号系统、支付宝小程序预约挂号系统主要是让自费、医保患者在手机上就能实现就医全过程,实时预约挂号、自费、医保结算,同时还可以查询检查检验报告等就诊信息,真正实现了让信息“多跑路”,让群众“少跑腿”。系统与HIS对接,通过医院微信公众号,患者用身份证注册以后,可以预约看诊的时间、医生挂号缴费。预约成功后,会收到预约码或二维码,患者可以在预约的时间段,前往医院看诊。既可以节约患者的等待时间,又可以降低医院的负荷。 一、开发环境 ❀技术架构:net     ❀开发语言:C# ❀开发工具:VS2019     ❀前端框架:uni-app     ❀后端框架:net     ❀数 据
266 1
|
应用服务中间件 nginx
下一篇
开通oss服务