新的 react-router 语法使用 Link
组件来移动路由。但是这怎么能与 material-ui
集成呢?
就我而言,我使用标签作为主要导航系统,所以理论上我应该有这样的东西:
const TabLink = ({ onClick, href, isActive, label }) =>
<Tab
label={label}
onActive={onClick}
/>
export default class NavBar extends React.Component {
render () {
return (
<Tabs>
<Link to="/">{params => <TabLink label="Home" {...params}/>}</Link>
<Link to="/shop">{params => <TabLink label="shop" {...params}/>}</Link>
<Link to="/gallery">{params => <TabLink label="gallery" {...params}/>}</Link>
</Tabs>
)
}
}
但是在渲染时,material-ui 会抛出一个错误,即 Tabs
的子级必须是 Tab
组件。有什么方法可以继续?如何管理选项卡的 isActive
道具?
提前致谢
原文由 Daniel Ramos 发布,翻译遵循 CC BY-SA 4.0 许可协议
我的导师帮助我使用 React Router 4.0 的 withRouter 来包装 Tabs 组件以启用这样的历史方法:
只需将 BrowserRouter 添加到 index.js 就可以了。