首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >@输入发出第一个呈现,但不会再次发出

@输入发出第一个呈现,但不会再次发出
EN

Stack Overflow用户
提问于 2022-08-11 21:31:57
回答 1查看 75关注 0票数 0

我使用下面的代码获取路由器的当前URL

代码语言:javascript
复制
this.router.events.subscribe(event => {
            if (event instanceof NavigationEnd) {
                this.currentRoute = event.url;
            }
        });

然后im通过@Input将currentRoute传递给子组件。

代码语言:javascript
复制
<app-actions *ngIf="currentRoute" [currentRoute]="currentRoute"></app-actions>

在我的子组件中,我选择了@Input() currentRoute: string;

问题是,第一次呈现组件时,currentRoute是可见的,但是在任何下一个URL更改上,路由器可观察到的路由器都不会为我提供子组件中的最新值。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-11 22:26:15

Input确实改变了,您只是没有在app-actions中听它。在子组件中,使用ngOnChanges生命周期挂钩,如下所示

代码语言:javascript
复制
ngOnChanges(changes: SimpleChanges): void {
  console.log(changes);
}

在您的app-actions组件中执行重新分配操作,即this.currentRoute = changes.currentRoute.currentValue,您很好

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73327090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档