router.navigateByUrl不发送值Angular

Edu*_*uBw 1 angular

我正在尝试在组件Angular之间发送1值...但是当我到达组件时,我什么也没收到。

组件1:

onCellClicked(event) {
    if (event.colDef.field === 'dni') {
      console.log('dni en mi componente : ', event.value);
      this.router.navigateByUrl('probarborrar/', event.value);
    }
  }
Run Code Online (Sandbox Code Playgroud)

首先检查Cell是否为dni,然后显示"console.log(event.value)"是真的,我可以看到我的dni。最后,我讲第二部分。

路由。

     {
        path: 'probarborrar/:idUser',
        component: ProbandoBorrarComponent,
        data: {
          breadcrumb: 'probar'
        }
      }
Run Code Online (Sandbox Code Playgroud)

组件2。

import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';

@Component({
  selector: 'app-probando-borrar',
  templateUrl: './probando-borrar.component.html',
  styleUrls: ['./probando-borrar.component.scss']
})
export class ProbandoBorrarComponent implements OnInit {
  public dni;

  constructor(private route: ActivatedRoute) {}

  ngOnInit() {
    this.dni= this.route.snapshot.paramMap.get('idUser');
    console.log('en probando es :', this.dni); -->nothing
  }
}
Run Code Online (Sandbox Code Playgroud)

html

<p style="color:white;background-color:black;">
  probando-borrar works! : {{ dni }}
</p>
Run Code Online (Sandbox Code Playgroud)

我可以到达Component2,但什么也没收到。

在此处输入图片说明

Aam*_*han 7

您应该为此使用导航功能。显然navigateByUrlqueryParams问题。其次,您需要将navigationExtras对象传递给该navigate函数。

签出代码示例。

this.router.navigate(['probarborrar'], {queryParams: {idUser: event.value}});
Run Code Online (Sandbox Code Playgroud)

在component2中,检索类似的值

constructor(private activatedRoute: ActivatedRoute) {}

ngOnInit() {
  this.activatedRoute.queryParams.subscribe((params) => {
      console.log(params['idUser']);
  });
}
Run Code Online (Sandbox Code Playgroud)

工作演示:https : //stackblitz.com/edit/angular-ytfgp8