繁体   English   中英

Ionic 4 从模态返回数据未定义

[英]Ionic 4 Pass Data BACK from Modal undefined

我正在尝试创建一个模态窗口,将一个单选组传递给它,当用户从该单选组中选择一个值时,然后让我的模态传递回他们选择的对象。

无线电组页面和 html

  export class PopoverstationsPage implements OnInit {

      cities :any

      constructor(public nav : NavController,public nav : NavController,public modalController: ModalController ,public router : Route) { }

      ngOnInit() {
        console.log(this.cities)
      }

      onRadioChange(cities: PopoverstationsPage):void {
    this.modalController.dismiss(cities);

      console.log(this.cities)
  }

    }

html

<ion-list>
        <ion-radio-group (ionChange)="onRadioChange()" [(ngModel)]="cities">
            <ion-list-header>
                <ion-label>Name</ion-label>
            </ion-list-header>

            <ion-item>
                <ion-label>ميناء خصب</ion-label>
                <ion-radio slot="start" value="26.2105,56.244" ></ion-radio>
            </ion-item>

            <ion-item>
                <ion-label>مطار خصب</ion-label>
                <ion-radio slot="start" value="26.161722,56.23672"></ion-radio>
            </ion-item>
            <ion-item>
                <ion-label>دبا</ion-label>
                <ion-radio slot="start" value="25.615627,56.247322"></ion-radio>
            </ion-item>
            <ion-item>
                <ion-label>البريمي</ion-label>
                <ion-radio slot="start" value="24.233913,55.916176"></ion-radio>
            </ion-item>

        </ion-radio-group>
  </ion-list>

主页接收上面的值表单页面然后在另一个功能中使用它

     export class HomePage implements OnInit {

              cities :any

              constructor(public nav : NavController,public modalController: ModalController) { }

              ngOnInit() {
                console.log(this.cities)
              }

            async openUserModal() {
           const modal = await this.modalController.create({
         component: PopoverstationsPage,
        componentProps: { cities: this.cities },
      });

      modal.onDidDismiss()
        .then((data) => {
          const user = data['cities']; // Here's your selected user!
          console.log(user)
      });

      return await modal.present();
    }


async test (){

  this.https.get('weather/'+this.cities+'.json')
  .subscribe(data => {

    this.weather = data

  })


}

 }

我在控制台日志中有错误undefined

此代码适用于 Ionic 4。

async presentModal() {
  let showModal = await this.modalCtrl.create({
    component: ModalPagePage,
    componentProps: {
      selectedDay: this.selectedDay
    }
  });
  await showModal.present();

  const { data } = await showModal.onDidDismiss();
  console.log("data is  " + data);
  if (data) {
    let eventData = data;
  }
}

在您的onDidDismiss处理程序中,您正在注销data['cities']但您在模态中返回一个String 这意味着您正在查询类型为Stringcities属性,它是一个Object - 这就是它返回undefined并且不抛出错误的原因。 应通过以下方法解决。

 const user = data;
 console.log(user)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM