我在使用React Router,并且我想在特定状态下禁用to属性。我传递了空字符串,但这并没有禁用链接,而是采用了页面的基本路由。我什至试图传递null,但这破坏了代码。甚至有可能这样做吗?

<NavLink className="nav-link" to={this.state.role == 4 ? "/pages" : ""}></NavLink>

最佳答案

您可以尝试使用自定义点击处理程序禁用按钮。

handleClick = (e) => {
    const { linkDisabled } = this.state
    if(linkDisabled) e.preventDefault()
}

render() {
    return (
        <NavLink
            onClick={this.handleClick}
            className="nav-link"
            to="/pages"
        >
            ...
        </NavLink>
    )
}


您可能想在禁用按钮时添加一些CSS

或者,您根本无法显示按钮

{
    this.state.linkDisabled ?
        null :
        <NavLink className="nav-link" to="/pages"></NavLink>
}

关于reactjs - 禁用navlink react 路由器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49297357/

10-11 06:55