小编Ser*_*ice的帖子

ActivatedRoute paramMap observable 发出值两次/触发两次 - Angular 4

我在 Angular 2/4 和获取特定路线的参数时遇到问题。我这样做了数百次,但从未遇到过这样的问题,正如您从我在路线上调用 paramMap 的代码中看到的那样,预计它只会运行一次,但不知何故它最终被调用两次。

这就像 paramMap observable 发出相同的值两次而不是一次。问题是,通过这种方式,我向服务器发出两个请求,发送重复的数据。

export class UserComponent implements OnInit {
    user: User;
    submitted: Observable<Topic[]>;

    constructor(
        private router: Router,
        private route: ActivatedRoute,
        private service: UserService,
        private topicService: TopicService
    ) {}

    ngOnInit(): void {        
        this.route.data
            .subscribe(res =>  this.user = res.user); 
        // Error is handled by resolver

        this.submitted = this.route.paramMap
            .switchMap((params: ParamMap) => {
               // THIS ONE IS INVOKED TWICE WITH SAME PARAMS
               return this.topicService
                  .getUserSubmitted(params.get("name"));
            });
    }
    .
    .
    .
}
Run Code Online (Sandbox Code Playgroud)

我使用解析器获取用户,同时根据路由参数(:名称)获取数据(主题),实际上就是这样,仅此而已。

javascript observable angular

4
推荐指数
1
解决办法
2621
查看次数

标签 统计

angular ×1

javascript ×1

observable ×1