【发布时间】:2017-10-23 05:01:53
【问题描述】:
我在子组件中使用 material-ui 选项卡,每次 URL 更改时都需要重新呈现选项卡。 url 结构类似于:
/in/:id
我的简化代码如下所示(如果示例中没有包含 var,请忽略):
class Header extends Component {
constructor(props){
super(props);
this.state = {
selectedTab: 0
}
}
componentWillReceiveProps(nextProps){
this.setState({selectedTab: 0});
}
render(){
return (
<Tabs
tabItemContainerStyle={style.tabItem}
className="active-tab-bar tabs"
initialSelectedIndex={this.state.selectedTab}
>
<Tab
containerElement={<Link to={`/in/${currentClient.id}/timeline`}/>}
to={`/in/${currentClient.id}/timeline`}
icon={<FontIcon className="material-icons">playlist_add_check</FontIcon>} />
<Tab
containerElement={<Link to=
{`/in/${currentClient.id}/website`}/>}
to={`/in/${currentClient.id}/website`}
icon={<FontIcon className="material-icons">web</FontIcon>} />
</Tabs>
)
}
export default withRouter(connect(null, {selectClient})(Header));
我尝试使用 connectWillReceiveProps 将所选索引重置为 0,但选项卡会在 url 更改后保持选择。有什么想法如何在每次 url 更改时重置标签?
【问题讨论】:
标签: reactjs react-redux material-ui