首页 > 解决方案 > 角 10 | 获取 URL 中的查询参数 null 或 undefined

问题描述

我有这条带有查询参数的路线lang

http://localhost:4200/?lang=de

以下示例均无效,它始终为 null 或未定义

import { ActivatedRoute } from '@angular/router';

constructor(private route: ActivatedRoute) { 
  console.log(this.route.snapshot.params.lang);
  console.log(this.route.snapshot.queryParamMap.get('lang'));
}

ngOnInit(): void {
  this.route.queryParams.subscribe(params => {
    let lang = params['lang'];  
    console.log(lang);
  });
  console.log(this.route.snapshot.queryParamMap.get('lang'));
  console.log(this.route.snapshot.params.lang);
}

我究竟做错了什么?我现在已经阅读了几本指南,甚至是 angular 10 的一些指南。它们中的每一个都显示了上述示例,但我仍然无法获得lang.

标签: angulartypescript

解决方案


对于 Observable 机制,您可以像这样使用 paramMap observable 并带有未定义的检查。

this.route.paramMap.subscribe(params => {
if(params.get('lang')){
    let lang = params.get('lang');  
    console.log(lang);
    }
  });

@Leo 已经提出了其他解决方案。

谢谢。


推荐阅读