c# - c# blazor server - 将类对象从子级传递给父级
问题描述
你好
我正在尝试在 blazor 服务器中制作一个可重用的组件
一个列表框,我在其中传递一个 id(它用来填充自身,然后用户选择的内容被传回
我的想法是将一个 ID 传递给一个组件,从父级到子级,这工作正常,但我只能从子级返回一个字符串,我想发回一个类对象,是否可能,我已经尝试过下面
父母
@using Microsoft.AspNetCore.Components.Web
@page "/"
@code {
private void IwasGivendatabackfromclient(HagClass x)
{
string text = x.parChildSet;
}
}
<h1>Hello, world!</h1>
Welcome to your new app.
<HagChild GiveMeDatFromPar="Balls of steel" OnEmployeeDeleted="IwasGivendatabackfromclient"></HagChild>
班级
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Components.Web;
namespace Blazor_PH_Par_Child.Shared
{
public class HagClass
{
public string parSentMe { get; set; }
public string parChildSet { get; set; }
}
}
孩子
@code {
[Parameter]
public string GiveMeDatFromPar { get; set; }
[Parameter]
public EventCallback<object> OnEmployeeDeleted { get; set; }
HagClass x = new HagClass();
public void Delete_Click()
{
x.parChildSet = "test";
OnEmployeeDeleted.InvokeAsync(x);
}
}
<h3>HagChild</h3>
<button type="button" class="btn btn-danger m-1"
@onclick="Delete_Click">
Delete
</button>
<p>hello @GiveMeDatFromPar</p>
解决方案
是的,有可能。您可以像这样添加参数
[Parameter]
public EventCallback<MyModel> OnEmployeeDeleted { get; set; }
然后在单击删除按钮后,创建 Mymodel 的项目类型并将其发送回父级
MyModel model = new(){ .... }
OnEmployeeDeleted.InvokeAsync(model);
在父页面中,您必须创建获取子数据的函数。
private void GetDeletedInfo(Mymodel model){}
组件的调用将是
<HagChild OnEmployeeDeleted="data => GetDeletedInfo(data)" />
推荐阅读
- mysql - mysql插入后无法获取insertId
- angular - 如何在 Angular Jest 中编写单元测试和模拟 httpClient
- c - Lua 或 JVM 等虚拟机如何表示(和处理)更大的数据类型?
- flutter - 如何在颤动的 webview 中禁用暗模式?
- node.js - Mongoose 错误 - UnhandledPromiseRejectionWarning:MongooseError:操作 `blogwayblogs.insertOne()` 缓冲在 10000 毫秒后超时
- javascript - 匹配键以在 JavaScript 中查找对象数据
- function - 在另一个函数中使用用户输入数据
- android - 如何使用适用于 Android 移动应用的钛在 vs 代码中打包应用?
- mysql - 我们如何从 JSON 下面创建一个视图,我们需要 MySQL Query
- jwt - 刷新令牌与访问令牌的 1:1 映射