【问题标题】:Service get called multiple time if child component selector is used multiple time in parent component如果在父组件中多次使用子组件选择器,则服务会被多次调用
【发布时间】:2021-09-18 03:13:29
【问题描述】:

我面临的问题是,服务被多次调用。

我在父组件中使用了两次相同的子组件选择器。

我只用一次 ngOnInit() 编写的服务。

理想情况下,如果我在 ngOnInit 中编写了服务,它应该在页面加载时调用一次。

但它被调用了 3 次。

1 次 ngonInit 和 2 次用于两个选择器。

除了 ngOnInit 之外,我没有在任何生命周期中调用过该服务。

【问题讨论】:

  • 请分享您的代码sn-p。
  • 你在你的子组件和父组件中调用你的服务吗?如果是,这是预期行为,如果不是,您应该分享一些代码
  • 是的,我在两个组件中都使用了相同的服务,以避免多次调用应该是什么解决方案
  • 在ngOninit中调用服务是什么意思?
  • 我的意思是在 ngOnInit 中我正在从服务中调用函数来进行 http 调用,我认为 @Barış Can Yılmaz 得到了正确的理解,请参阅我上面的评论以获得更多说明

标签: angular


【解决方案1】:

@拉曼, 我不确定该服务的作用,但我认为子组件和父组件在页面加载时都需要服务的结果。

在这种情况下,服务会被多次调用,正如@Baris 所说,这是 Angular 中的预期行为。

您可以做一件事,如果您确实需要在父组件的某处使用该服务结果,则再创建一个新组件并在新添加的组件中使用该服务。现在您可以在父组件中添加这个新组件,以便页面加载服务将调用新添加的子组件而不是父组件,以便每个子组件都可以从其页面/文件调用服务。此解决方案可能会对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 2023-02-10
    • 1970-01-01
    • 1970-01-01
    • 2020-06-01
    • 2016-12-02
    • 1970-01-01
    相关资源
    最近更新 更多