[英]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
。 这意味着您正在查询类型为String
的cities
属性,它是一个Object
- 这就是它返回undefined
并且不抛出错误的原因。 应通过以下方法解决。
const user = data;
console.log(user)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.