reactjs - React Ionic - 菜单如何访问路由器参数?
问题描述
我从 SideMenu Ionic App 开始。
我有一个主页,它从路线中获取“日期”道具
在左侧菜单中,我将放置一个日历,其中将突出显示路线中提供的日期。
如何继续访问菜单中的日期参数?
<IonApp>
<IonReactRouter>
<IonSplitPane contentId="main">
<IonMenu contentId="main" date="????">
</IonMenu>
<IonPage id="main">
<IonContent>
<IonRouterOutlet>
<Route
path="/Organisation/:date?"
render={(props) => (
<Organisation {...props} />
)}
exact={true}
/>
</IonRouterOutlet>
</IonContent>
</IonPage>
</IonSplitPane>
</IonReactRouter>
</IonApp>
我尝试了几种解决方案,但没有一种效果很好。哪个是最好的?
- 将所有内容放在 IonRouterOutlet 下方,即将 IonMenu 移动到组织组件内。我已经尝试过了,但左侧菜单在每次页面更改时消失 1 秒(重新加载?)。这不好。
- 将回调函数传递给将日期发送回 IonApp 组件的组织组件。我已经尝试过了,但它会产生无限循环
- 其他 ?
谢谢
解决方案
从 Ionic 提供的侧边菜单模板开始的最佳方法。
这是我在示例应用程序中的结构
<IonApp>
<>
{authInfo?.loggedIn === true ? (
<IonReactRouter>
<IonSplitPane contentId="main">
<Menu />
<IonRouterOutlet id="main">
<Route path="/page/:name" component={Page} exact />
<Route path="/tabs" component={TabRootPage} />
<Redirect from="/" to="/tabs" exact />
</IonRouterOutlet>
</IonSplitPane>
</IonReactRouter>
) : (
<IonReactRouter>
<Route
path="/create-account"
component={CreateAccountPage}
exact
/>
<Route path="/login" component={LoginPage} exact />
<Redirect from="/" to="/login" exact />
</IonReactRouter>
)}
</>
</IonApp>
我正在使用反应上下文来存储一些状态信息,这些信息存储在我的AuthProvider
ReactDOM.render(
<AuthProvider>
<App />
</AuthProvider>,
document.getElementById("root")
);
然后,您可以从上下文中获取数据,Menu
而无需传递参数。
推荐阅读
- python - 如何在python中为GMT获取当前日期和时间为某种格式
- mysql - 如何查询表中每个组的前 n 条记录?
- postgresql - 为什么 psql 无法连接到服务器?
- javascript - Angular - 我的 ngIf 仅隐藏一次输入标签
- c# - 当文本框中的字段不正确时如何显示两个不同的消息框
- spring-cloud-stream - 带有 kinesis 的 Spring 云流:AmazonDynamoDBLockClient 在循环中抛出异常
- flutter - Flutter - 占据整个屏幕宽度的图像
- eclipse-plugin - 如何动态更新有助于 org.eclipse.ui.menus 扩展的菜单标签
- powershell - 如何强制函数返回单个元素数组而不是包含的对象?
- c# - ASP.NET Core 服务未创建 RabbitMQ 队列