问题标签 [subcomponent]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
308 浏览

javascript - 来自子组件的 EventEmitter 不起作用

我想要从父组件到子组件的双向绑定。这已经在我的一个组件中运行良好,如下所示(我发出了一些 css 类和其他不相关的部分):

父 habit-show.component.html:

子组件 habit-edit.component.html:

子组件 habit-edit.component.ts:

这按预期工作:我可以在父组件中看到 habit.label ,当我更改输入中的值时,它也会自动更改。现在这是不工作的组件部分:

父习惯-edit.component.html:

子组件 checkbox.component.html:

子组件 checkbox.component.ts:

现在在这种情况下,父组件中的值不会更新,我不知道为什么,因为我做了基本相同的事情。子组件中的值确实会正确更新。

值得注意的一件事可能是,第一个(工作)示例中的子组件是第二个示例中的父组件-> 这应该不是问题,不是吗?

每当我按下该按钮时,当我添加一个按钮时,父容器的更新也会起作用(尽管它仍然不会从复选框值更新):

父习惯-edit.component.html:

子组件 checkbox.component.html:

子组件 checkbox.component.ts:

如果我将测试函数添加到输入本身,则无论何时按下它都不会发生任何事情(甚至子组件中的 mappedModel 都不会更新)

问题似乎是我无法正确地将 habit.goalActive 与子组件中的事件发射器绑定(可能是因为它是对象的属性而不是整个对象?)我仍然很困惑,因为这没问题在输入上使用 [(ngModel)]

0 投票
1 回答
86 浏览

dependency-injection - 为什么使用 @Module.subcomponents 比通过父组件上的方法安装子组件更好?

文档

使用@Module.subcomponents更好,因为它允许 Dagger 检测是否曾经请求过子组件。通过父组件上的方法安装子组件是对该组件的显式请求,即使该方法从未被调用。Dagger 无法检测到这一点,因此即使您从不使用它也必须生成子组件。

有谁明白这到底是什么意思?

0 投票
0 回答
139 浏览

generics - 是否可以将类型参数信息传递给匕首子组件?

我希望能够将类型信息公开给通用抽象类中的子组件。我们有一个abstract class在子类中设置的类型参数(后者绑定在我们的图中),并尝试将此类型信息传递给此类内的子组件。尝试的方式尝试将类型参数附加到子组件。

这是我想要实现的更充实的示例:

当然,这并不需要:

是否可以通过其他方式连接这些信息?如果不需要在我们的子组件中绑定的变量,我们可以将我们的变量绑定到我们subRunner: Runner<Options>的主图中而不会出现问题,正如评论的那样。

0 投票
2 回答
128 浏览

components - 如何防止 DFM 中不需要的对象

我在我正在编写的组件中复制了带有 TBoundLabel 的源 LabeledEdit 示例,以附加一个方便的标签。它们工作正常,但我在加载 .dfm 表单时遇到问题(似乎当我的组件位于另一个组件上时,例如 CategoryPanel):

找不到类 TBoundLabel

在此处输入图像描述 测试表格:

LabelledCombo 的来源:

这是重现问题的最简单的测试,CategoryPanel 上的 LabelledCombo。(在表格上我不会感到悲伤。)

我尝试删除对子标签的引用并重新保存 .DFM 但它又回来了。我看不出要修复什么:源与 TLabeledEdit 的源相同,只是 TBoundLabel 不在我的单元中。我是否也需要将其源代码复制到我的组件单元中?

麦克风

0 投票
1 回答
45 浏览

android - MainComponent 中的 MissingBinding 对象,在子组件的模块中提供

我使用具有 ActivityBuilderModule 和 ViewModelBuilderModule 的“AppComponent”和具有提供 InterfaceRequest 的 NetworkModule 的子组件“NetworkComponent”,我在 Repository 中注入 InterfaceRequest 并在 ViewModel 中注入 Repository 并且 ViewModel 被注入到 Activity 中,但我得到了这个错误:

应用组件:

网络组件:

存储库代码:

网络模块:

0 投票
4 回答
1580 浏览

blazor - Blazor InputFile 重置/清除值 - statehaschanged() 不起作用

我有一个使用 Blazor InputFile 组件作为子组件的组件。

当我选择一个文件时,按预期调用 OnChange 处理程序。但是,如果我两次选择同一个文件,则不会再次调用 OnChange 处理程序(我猜这是预期的,因为选择没有改变,但是我的用例需要这个)。

所以,我想如果我可以选择一个文件并调用 OnChange 处理程序并在 OnChange 处理程序中“重置”选定的文件,那么即使再次选择同一个文件,我也应该对处理程序进行新的调用。

我不知道如何重置 InputFile(子)组件中的文件选择。调用this.StateHasChanged()处理程序不会导致 InputFile 组件重新呈现。

如果没有 JSInterop 并手动将 DOM 输入元素的值字段设置为“”,这是否可行(甚至可以工作)?

我的组件:

到目前为止,我的尝试包括:

  • 遵循与此相关的各种提示/技巧。StateHasChanged(),即
    • await Task.Delay(1);
    • await InvokeAsync(StateHasChanged);
  • 使用向 InputFile 添加值以AdditionalAttributes.Add(..)查看是否可以强制重新渲染
  • 查看了使用 RenderFragment 动态添加 InputFile 组件,但是在代码中创建 InputFile 的新实例时我无法传递 OnChanged 参数(处理程序),这意味着我不会使用 InputFileChangeEventArgs 进行回调
  • 看着将 InputFile 包装在 EditForm 中以重置表单(Blazor EditForms 显然没有重置功能?)
  • [编辑] 将 Task 和 void 用于 OnInputFileChange
0 投票
1 回答
144 浏览

reactjs - 在层次结构中使用 React 钩子

我是 react 新手,在我的新 react 应用程序中开发了很少的功能组件,这些组件在循环中被调用。子组件之一,呈现单选按钮。在选择单选按钮选项时,我需要调用 webapi 并更新父 App.js 中的状态。我一直在研究钩子,到目前为止还不能使用内置的,正在考虑实现一个自定义钩子。你能建议最好的方法吗

0 投票
0 回答
181 浏览

android - 匕首 2 子组件

而 Dagger 实现我有以下错误。请帮我解决它。

匕首/组件/AppComponent.java:10:错误:[com.example.testproject.app.dagger.component.PostLoginComponent.inject(com.example.testproject.view.photo.PhotoListActivity)] com.example.testproject.data。如果没有 @Inject 构造函数或 @Provides-annotated 方法,则无法提供 UserStore。

我的理解 - 我创建了 AppComponent 和 AppModule,它们是 PostLoginComponent 和 PostLoginModule 的父级(因为它们是子组件)。photoListViewModel 被注入到 PhotoListActivity 中。photoListViewModel 由 postLoginComponent 和 PostLoginModule 提供。现在 photoListViewModel 需要 UserStore 作为 AppModule 中存在的依赖项。因此,据我了解,父模块中的所有对象都可用于子模块。在这种情况下,来自 AppModule 的 UserStore 应该可用于 PostLoginModule 中的 PhotoListViewModel。

但根据错误,未提供 UserStore。

0 投票
2 回答
81 浏览

react-native - 如何在本机反应中创建子组件?

我看到反应原生元素 - 卡片组件像这样工作。

我想创建一个带有标题和分隔符等子组件的组件。

我可以创建这样的组件。

如何将子组件(比如说标题)添加到 A 组件?

0 投票
1 回答
18 浏览

reactjs - 用 SubComponent 反应组件 - 热重载不起作用

我的项目有一个简单的SubComponent. 如果我在内部进行任何更改,SubComonent它不会热重载。我不知道如何解决它。

我有这样定义的组件:

和用法:

如果我做了更改,Component.SubComponent它不会重新加载,但如果我做了更改,SubComponent1它会很好地工作。

我已经使用干净的 create-react-app 安装对此进行了测试,但它在那里也不起作用。

关于如何解决这个问题或代码有什么问题的任何想法?我在互联网上找到了很多关于子组件的文章。