mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-24 06:22:45 +08:00
refactor(modal): use framework delegate for mounting the user's component
This commit is contained in:
49
packages/demos/react/src/pages/ModalPage.js
Normal file
49
packages/demos/react/src/pages/ModalPage.js
Normal file
@ -0,0 +1,49 @@
|
||||
import React, { Component } from 'react';
|
||||
|
||||
import PageThree from './PageThree';
|
||||
|
||||
export default class ModalPage extends Component {
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
this.style = {
|
||||
height: '100%'
|
||||
};
|
||||
this.state = {
|
||||
content: 'modal page - ' + 50
|
||||
}
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
console.log('componentDidMount');
|
||||
setInterval(() => {
|
||||
this.setState({ content: 'Modal page - ' + Math.random() * 1000});
|
||||
}, 1000);
|
||||
}
|
||||
|
||||
dismiss() {
|
||||
return this.props.modal.dismiss();
|
||||
}
|
||||
|
||||
render() {
|
||||
return [
|
||||
<ion-header ref={(element) => this.element = element}>
|
||||
<ion-toolbar>
|
||||
<ion-title>Modal Page</ion-title>
|
||||
</ion-toolbar>
|
||||
</ion-header>,
|
||||
<ion-content>
|
||||
Modal Page
|
||||
<div>
|
||||
<ion-button onClick={() => this.dismiss()}>Dismiss</ion-button>
|
||||
</div>
|
||||
<div>
|
||||
Some random content: {this.state.content}
|
||||
</div>
|
||||
<div>
|
||||
Props : {this.props.paramOne}
|
||||
</div>
|
||||
</ion-content>
|
||||
];
|
||||
}
|
||||
}
|
@ -1,6 +1,9 @@
|
||||
import React, { Component } from 'react';
|
||||
|
||||
import { createModal } from '@ionic/react';
|
||||
|
||||
import PageTwo from './PageTwo';
|
||||
import ModalPage from './ModalPage';
|
||||
|
||||
export default class PageOne extends Component {
|
||||
|
||||
@ -35,6 +38,14 @@ export default class PageOne extends Component {
|
||||
nav.push(PageTwo, { paramOne: 'Tobey Flenderson'});
|
||||
}
|
||||
|
||||
openModal() {
|
||||
return createModal({
|
||||
component: ModalPage
|
||||
}).then((modal) => {
|
||||
return modal.present();
|
||||
});
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
setInterval(() => {
|
||||
this.setState({ content: Math.random() * 1000});
|
||||
@ -54,6 +65,9 @@ export default class PageOne extends Component {
|
||||
<div>
|
||||
<ion-button onClick={() => this.goToPageTwo()}>Go to Page Two</ion-button>
|
||||
</div>
|
||||
<div>
|
||||
<ion-button onClick={() => this.openModal()}>OpenModal</ion-button>
|
||||
</div>
|
||||
<div>
|
||||
Some random content: {this.state.content}
|
||||
</div>
|
||||
|
Reference in New Issue
Block a user