在Angular 7中,如果你使用ActivatedRoute
来获取路由参数,并且在获取参数时得到了null值,可能是由于以下几个原因:
错误的路由配置:首先,确保你的路由配置正确,并且包含了参数的定义。例如,如果你的路由是/user/:id
,那么你需要在路由配置中使用{ path: 'user/:id', component: UserComponent }
来定义路由。
参数名称错误:如果你使用了不正确的参数名称来获取参数值,也会导致得到null值。确保你在route.params
中使用的参数名称与路由配置中的参数名称一致。例如,如果路由配置中的参数名称是:id
,那么你应该使用route.params.subscribe(params => { this.paramId = params['id']; })
来获取参数值。
参数值缺失:如果你在路由中没有提供参数值,那么在使用ActivatedRoute
获取参数时会得到null值。确保你在导航到该路由时提供了正确的参数值。
以下是一个示例代码,演示了如何正确使用ActivatedRoute
来获取参数值:
在路由配置中定义参数:
{ path: 'user/:id', component: UserComponent }
在组件中获取参数值:
import { ActivatedRoute } from '@angular/router';
export class UserComponent {
paramId: string;
constructor(private route: ActivatedRoute) {}
ngOnInit() {
this.route.params.subscribe(params => {
this.paramId = params['id'];
console.log(this.paramId); // 输出参数值
});
}
}
确保你正确配置了路由,并在导航到该路由时提供了参数值。如果仍然得到null值,请检查以上几个原因,并根据情况进行调整。