【问题标题】:ionic retreive passed data from page to page离子检索从页面到页面传递数据
【发布时间】:2020-03-05 10:30:11
【问题描述】:

我正在 ionic 5 中从页面导航到另一个页面并将数据作为导航参数传递,它已经正确导航但我无法在详细信息页面中检索传递的数据。 主页.ts:

this.navCtrl.navigateRoot(['products', {item: 'data value'}]);

Products.ts(详情页):

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

@Component({
  selector: 'app-products',
  templateUrl: './products.page.html',
  styleUrls: ['./products.page.scss'],
})
export class ProductsPage implements OnInit {
  private activatedRoute: ActivatedRoute

  constructor() {
    this.sub = this.route.params.subscribe(params => {
      this.id = params.id; 
  });
   }


  ngOnInit() {
 /*   this.activatedRoute.params.subscribe((params) => {
      console.log('Params: ', params);
    });
*/
  }

}

我收到了这个错误: "'ProductsPage' 类型上不存在属性 'sub'。",

【问题讨论】:

    标签: angular ionic-framework


    【解决方案1】:

    有两种选择:

    选项 1:导航控制器:

    // Send Parameter
    import { NavController } from '@ionic/angular';
    import { NavigationExtras } from '@angular/router';
    //...
    constructor(public navCtrl: NavController) { }
    //...
    let navigationExtras: NavigationExtras = {
        queryParams: {
            currency: JSON.stringify(currency),
            refresh: refresh
        }
    };
    this.navCtrl.navigateForward(['page-slug'], true, navigationExtras);
    

    -

    // Receive Parameter
    import { ActivatedRoute } from "@angular/router";
    //...
    constructor(private route: ActivatedRoute) {}
    //...
    this.route.queryParams.subscribe(params => {
        this.refresh = params["refresh"];
        this.currency = JSON.parse(params["currency"]);
    });
    

    选项 2:路由器:

    // Send Parameter
    import { Router } from '@angular/router';
    //...
    constructor(private router: Router) {}
    
    goToProductDetails(id) {
      this.router.navigate(['/product-details', id]);
    }
    

    -

    // Receive Parameter
    import { ActivatedRoute } from '@angular/router';
    //...
    id: any;
    constructor(private route: ActivatedRoute) {}
    //...
    this.sub = this.route.params.subscribe(params => {
         this.id = params['id']; 
    });
    

    【讨论】:

    • 此代码无效,请查看帖子更新,谢谢。
    【解决方案2】:
    猜你喜欢
    • 2016-12-19
    • 1970-01-01
    • 1970-01-01
    • 2020-11-20
    • 2019-07-10
    • 2021-12-09
    • 1970-01-01
    • 1970-01-01
    • 2017-12-23
    相关资源
    最近更新 更多