更改路线时反应状态为空

时间:2018-05-29 15:00:33

标签: reactjs react-router

我有这段代码:

constructor(props) {
    super(props);
    this.state = {
        setMenu: (window.location.pathname.split("/")[1] == '') ? '/' : window.location.pathname.split("/")[1]
    };

    this.menuItens = new Menu();
    this.menuItens = this.menuItens.Itens;
};

并在我的侧边栏菜单项中:

<NavLink tag={Link}
         to={item.path}
         title={item.title}                                                  
         onClick={this.setMenu}                                                  
         className={(this.state.setarMenu === item.title) ? 'active' : ''}>

        <span>{item.nome}</span>
</NavLink>

我试图通过调用函数来改变状态:

setMenu = (event) => {
    this.setState({setarMenu: event.target.title});
};

但不幸的是,由于window.location.pathname是空的,有时状态不会改变。

任何人都知道为什么会这样?

1 个答案:

答案 0 :(得分:0)

解决了,只需删除Reactstrap的NavLink组件的标签,它就可以正常工作。

看来,使用NavLink中的span标记,组件有时只返回没有title = {item.title}等属性,而不是我需要“设置菜单”(setState)的属性。

顺便说一句:在PT-BR中我们写“item”no“iten”,这就是为什么有时我们会拼错它。

无论如何,谢谢你们。