如何将嵌套数据结构作为 LitElement 中的属性传递?

2024-04-25

在父组件中我有类似的内容:

render() => {
    const data = {a:1,b:[1,2,3]}; // of course this is a simplified version of the code
    return html`<child-component data=${data}></child-component>`
}

这基本上相当于:

render() => {
    const data = {a:1,b:[1,2,3]}; // of course this is a simplified version of the code
    return html`<child-component data="[object Object]"></child-component>`
}

基本上没什么用...

有没有一种简单的方法可以将复杂的对象层次结构传递到 litElement 组件中?

据我所知,我的选择是:

选项1。使用属性:我是一个 litElement 菜鸟,所以我不确定这是否有效,并且我不确定如何使其工作而无需进行额外的函数调用。如果我能在里面做所有必要的工作就好了html.

研究正在进行中。

选项 2。使用杰森。

将父组件中的对象字符串化

render() => {
    const data = {a:1,b:[1,2,3]}; // of course this is a simplified version of the code
    return html`<child-component data=${JSON.stringify(data)}></child-component>`
}

然后解析子组件中的json。

不过,这对我来说似乎有点不优雅。

但它有效。


在这种情况下,您可能想要的是将对象作为属性而不是属性 https://lit.dev/docs/templates/expressions/#property-expressions。对于对象、数组、函数等复杂数据,这是首选方法。

您可以使用以下语法来完成此操作:

render() => {
  const data = {a:1,b:[1,2,3]};
  // note the period (.), that's the token used to identify that you're passing data as a property
  return html`<child-component .data=${data}></child-component>`
}

一般来说,你应该给Lit 的模板指南一读 https://lit.dev/docs/templates/overview/因为其中涵盖了一些最常见的用例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将嵌套数据结构作为 LitElement 中的属性传递? 的相关文章

  • HTML5 视频在移动浏览器上自动播放

    我使用以下 HTML5 和 JQuery 代码来播放 URL 位于数组 URLArray 中的视频播放列表 function NextFrag if index lt URLArray length VideoContainer html
  • PHP 数组表示法中的大括号

    我刚刚遇到了一段非常奇怪的 php 代码 oink pig 1 var dump oink oink pig 123123 echo oink pig gt 123123 echo oink pig gt 123123 它的工作原理类似于数

随机推荐

  • TypeScript + NodeJS readline 属性缺失

    我正在使用 TypeScript 开发一个小项目tsc v 2 4 2和节点 v6 10 3 我想在 CLI 中捕获按键 所以我尝试import as readline from readline 然后稍后使用readline emitKe
  • 使用列表项的多重过滤器逻辑

    以下代码将搜索任何重复的类 li class duplicate duplicate 在无序列表中的列表项中 它将显示结果 show and hide 其他的 当前版本 目前它适用于两种场景 First 它显示具有相同类别 至少一个或多个
  • Python 中 FFT 的循环加速(使用“np.einsum”)

    Problem 我想加速包含大量乘积和求和的 python 循环np einsum 但我也愿意接受任何其他解决方案 我的函数采用形状为 n n 3 的向量配置 S 我的情况 n 72 并对 N N 点的相关函数进行傅里叶变换 相关函数定义为
  • 任务 :':app:mergeDebugResources' 执行失败。安卓工作室

    我刚刚安装了 android studio 出现一个错误 我不知道如何修复 尝试干净的项目 如果不起作用的话 然后 转到项目部分中的 build gradle 尝试降级gradle版本 From dependencies classpath
  • 离子范围滑块 2.0.3

    我正在尝试使用离子范围滑块 2 0 3 URL http ionden com a plugins ion rangeSlider demo advanced html http ionden com a plugins ion range
  • 类型错误:无法读取未定义的属性(读取“html”)

    我正在尝试将 Jest 引入我当前的项目 然而 在初始设置过程中 我遇到了这个错误 并且无法正常运行 我该如何解决这个问题 我目前正在使用 vue cli 中的 vue2 Test suite failed to run TypeError
  • 使用 Excel 连接函数

    我正在尝试将 Excel 中三列的数据合并到一列中 例如 我想将 Product Location 和 Key id 合并到一列中 Product Location Key Id Car VA 86421910 Car VA 8642448
  • 在 header("Location: ") 调用后是否调用 exit 有关系吗?

    我似乎无法找到答案 直到我发现这个帖子 http www php net manual en function exit php 90713 on exit在 php net 上 发送 Location 标头 PHP 后will继续解析 h
  • Matlab:不正确的索引矩阵参考(或智胜matlab)

    我希望能够写jasmine http pivotal github io jasmine 类似于 Matlab 中的测试 所以像 expect myfibonacci 0 toBe 0 expect myfibonacci 5 toBe 1
  • C# 与 C++ 中的运算符 new

    来自 C 我对使用newC 中的关键字 我知道它不像 C 那样工作new从某种意义上说 您不必手动控制对象的生命周期 因为 C 具有垃圾收集功能 然而 当阅读其他人的 C 代码时 我注意到代码片段 1 中的语句 避免使用new总而言之 就像
  • 如何在模拟器android studio中设置密度

    我想创建一个 Samsung Galaxy XCover4S 720 x 1280 px 5 00 294ppi 64 6 屏幕与机身比例 的模拟器 但是我只找到了如何设置预定义的密度 如 120 240 320 和更多密度 ppi in
  • 如何识别托管 bean 中单击的 commandButton

    我有一个actionListener我的托管 bean 中的方法由许多命令按钮调用 public void verifyTestDisponibility ActionEvent actionEvent if button1 clicked
  • SQL 作为访问表单字段的控制源

    有什么方法可以使用 SQL 填充 Access Form 的文本字段值吗 我读到不可能简单地输入 SQL 作为控制源 这是真的 谢谢你的帮助 edit 我需要执行这个查询 SELECT tblCaseIssues IssueDesc FRO
  • Chartjs 插件数据标签不在图表上显示值

    我正在尝试使用 Chartjs 数据标签插件获取每个条形上的值 因此 在 a 条上方 a 想要看到数字 30 在 b 条上方或内部我想看到数字 50 但它根本没有显示任何价值 谁能帮忙并告诉我出了什么问题吗 我也尝试过使用不同版本的char
  • 让隐藏的div出现然后消失?

    让 div 出现然后淡出几秒钟的最简单方法是什么 fade div visibility none position fixed background color yellow border 1px solid black top 300p
  • 单个 CMakeLists.txt 足以满足我的项目需求吗?

    我正在尝试将旧的 CMake 移植到现代 CMake CMake 3 0 2 或更高版本 在旧的设计中 我有多个 CMakelists txt 每个目录都包含一个 CMakeLists txt 文件 我当前项目的目录结构如下所示 VizSi
  • 如何在describe()的before()块中动态生成Mocha测试?

    我正在创建一个 mocha 测试套件 该套件正在测试我们的 nwjs 应用程序正在调用的命令行实用程序 该实用程序获取文件并生成输出 json 文件 我有数千种输入文件组合和我想要生成的测试 it s 具体取决于 cmdline 实用程序的
  • 如何在 x 轴上显示每个元素的标签?

    我有包含文件名和编号的元组序列 我想绘制柱形图 其中 X 轴上有文件名 我的问题是现在 X 轴下仅显示 3 个标签 文件名 这可能是因为屏幕无法容纳更多内容 还是X轴间隔错误 如何让图表显示所有文件名 也许有办法将这些标签逆时针旋转 90
  • CSS 中具有透明背景的锯齿状边缘

    使 div 的顶部和底部边框具有锯齿状边缘 https stackoverflow com questions 18972888 make a divs top and bottom border have a jagged edge 根据
  • 如何将嵌套数据结构作为 LitElement 中的属性传递?

    在父组件中我有类似的内容 render gt const data a 1 b 1 2 3 of course this is a simplified version of the code return html