【发布时间】:2020-12-16 14:48:14
【问题描述】:
我目前正在创建一个表格管理器 Web 组件,它由几个不同的组件组成,例如 data-table、search-bar 等。我单独管理它,因为在某些情况下不使用表格或搜索栏,但是当它们一起使用时,它们使用相同的类作为输入。搜索栏调用类的搜索方法之一,并相应地过滤数据,但是数据属性在类中发生了变化,只有当我执行一些操作来刷新时它才会反映在 UI 上(例如检查复选框)。
所以我通过组件A 中的类方法调用来更改类的一个成员,我希望它反映在组件B 中。
export let config: TableConfig = new TableConfig();
$: setConfig(config);
...
// Search function:
config.quickSearch(quickSearchValue);
我遍历config.data 以显示一些数据。搜索后,data 成员更改,如果我使用setInterval 将配置记录到table 组件中,它会显示更改后的data,但 UI 不会刷新。
也许我的方法是完全错误的,但这就是我在 Angular 中的做法,但它有很多不必要的依赖关系,所以现在我正试图摆脱它。所以我的主要目标是使用它任何地方,例如 Svelte、Angular、VanillaJS 等。
编辑:
REPL 示例:https://svelte.dev/repl/311538f2cf52484f8d0ac3aeae7540ea?version=3.31.0
【问题讨论】:
-
如果你说的是 Svelte 组件,那么标签
web-component和custom-elements不适用,它们适用于 W3C Web 组件。 -
很难从你的问题中看出发生了什么。您能否显示更多出现问题的组件代码?如果你能在Svelte REPL 上做一个例子也会很有帮助
-
@Danny'365CSI'Engelman 我正在用 svelte 创建 Web 组件,正如我所说我在 Angular、Svelte 和 VanillaJS 中使用它们,我已经制作了两个这样的包,但这将是大一点的
-
@GeoffRich 这是一个 repl 示例,我在
ComponentA中放了一个setInterval以记录单击Filter按钮后配置已更改:svelte.dev/repl/311538f2cf52484f8d0ac3aeae7540ea?version=3.31.0
标签: javascript web-component svelte custom-element