IonReactRouter 不呈现 IonPage
IonReactRouter not rendering IonPage
我是 ionic-react 框架的新手,到目前为止我很喜欢它。但现在我遇到了一个问题。当我使用 "IonReactRouter" 时,它说我的页面必须在 IonPage 组件内,尽管事实确实如此。我已经尝试删除复合 div 但仍然没有。任何帮助表示赞赏。 . .
我刚遇到同样的问题,但可以按如下方式解决。
根据Changelog 4.9.0-rc2, an IonPage should be the root page for Ionic Pages. Further, IonRouterOutlet must be the direct parent component of every IonPage, as it is explained in this comment。
一个简单的示例可能如下所示。
const Home: React.FC = () =>
<IonPage>
<IonHeader>Home</IonHeader>
</IonPage>
const Example: React.FC = () =>
<IonPage>
<IonHeader>Example</IonHeader>
</IonPage>
const App: React.FC = () =>
(
<IonApp>
<IonReactRouter>
<IonRouterOutlet>
<Route path="/" component={Home} />
<Route path="/example" component={Example}/>
</IonRouterOutlet>
</IonReactRouter>
</IonApp>
);
export default App;
但是请注意,如果您使用 react-router guide 中所示的嵌套路由, div 将打破直接父子条件。该应用程序将路由到该组件,对其进行初始化,但只呈现一个空白页面。
因此请确保始终使用 IonRouterOutlet。
const Home: React.FC = () =>
<IonPage>
<IonHeader>Home</IonHeader>
<IonContent>
<Link to={'/example/simple'}>Simple</Link>
<br/>
<Link to={'/example/advanced'}>Advanced</Link>
</IonContent>
</IonPage>
const Example: React.FC<RouteComponentProps> = (route: RouteComponentProps) =>
<IonRouterOutlet>
<Route path={`${route.match.url}/simple`} component={SimpleExample}/>
<Route path={`${route.match.url}/advanced`} component={AdvancedExample}/>
</IonRouterOutlet>
const SimpleExample: React.FC<RouteComponentProps> = (route: RouteComponentProps) =>
<IonPage>
<IonHeader>Simple</IonHeader>
</IonPage>
const AdvancedExample: React.FC<RouteComponentProps> = (route: RouteComponentProps) =>
<IonPage>
<IonHeader>Advanced</IonHeader>
</IonPage>
我是 ionic-react 框架的新手,到目前为止我很喜欢它。但现在我遇到了一个问题。当我使用 "IonReactRouter" 时,它说我的页面必须在 IonPage 组件内,尽管事实确实如此。我已经尝试删除复合 div 但仍然没有。任何帮助表示赞赏。 . .
我刚遇到同样的问题,但可以按如下方式解决。
根据Changelog 4.9.0-rc2, an IonPage should be the root page for Ionic Pages. Further, IonRouterOutlet must be the direct parent component of every IonPage, as it is explained in this comment。 一个简单的示例可能如下所示。
const Home: React.FC = () =>
<IonPage>
<IonHeader>Home</IonHeader>
</IonPage>
const Example: React.FC = () =>
<IonPage>
<IonHeader>Example</IonHeader>
</IonPage>
const App: React.FC = () =>
(
<IonApp>
<IonReactRouter>
<IonRouterOutlet>
<Route path="/" component={Home} />
<Route path="/example" component={Example}/>
</IonRouterOutlet>
</IonReactRouter>
</IonApp>
);
export default App;
但是请注意,如果您使用 react-router guide 中所示的嵌套路由, div 将打破直接父子条件。该应用程序将路由到该组件,对其进行初始化,但只呈现一个空白页面。
因此请确保始终使用 IonRouterOutlet。
const Home: React.FC = () =>
<IonPage>
<IonHeader>Home</IonHeader>
<IonContent>
<Link to={'/example/simple'}>Simple</Link>
<br/>
<Link to={'/example/advanced'}>Advanced</Link>
</IonContent>
</IonPage>
const Example: React.FC<RouteComponentProps> = (route: RouteComponentProps) =>
<IonRouterOutlet>
<Route path={`${route.match.url}/simple`} component={SimpleExample}/>
<Route path={`${route.match.url}/advanced`} component={AdvancedExample}/>
</IonRouterOutlet>
const SimpleExample: React.FC<RouteComponentProps> = (route: RouteComponentProps) =>
<IonPage>
<IonHeader>Simple</IonHeader>
</IonPage>
const AdvancedExample: React.FC<RouteComponentProps> = (route: RouteComponentProps) =>
<IonPage>
<IonHeader>Advanced</IonHeader>
</IonPage>