javascript-是否可以使用react router将值从子路由传递到其父路由?

假设我有一个MainHeader和一个标题.使用react router,我将组件渲染到体内.

...
<header></header>
<main>{this.props.children}</main>
...

这是我目前的路由器:

<Route component={MainLayout} onEnter={requireCordova}>
   <Route path="/home" component={Home} />
   <Route path="/settings" component={Settings} />
</Route>

我的问题是我希望MainLayout从其子项之一中获取标题(以填充标题),这可能吗?

<Route component={MainLayout} onEnter={requireCordova}>
   <Route path="/home" component={Home} title='homepage' />
   <Route path="/settings" component={Settings} title='settings'  />
</Route>

解决方法:

您不能直接在组件之间进行通信.您可能需要使用共享存储来满足此类要求-最受欢迎的解决方案是Redux.

为了解决您更新标题的特定问题-有一个简单的实用程序react-helmet可以简化过程.

您可以简单地在任何路线组件中使用头盔组件:
<头盔title =“我的标题” />和头盔将负责更新您的标题.它也适用于HTML头中的其他元素-例如.元,链接,脚本标签等.

上一篇:javascript-在React.js应用程序中使用freshdesk反馈小部件


下一篇:javascript-无法按键访问元素