Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查页面是否有添加类的链接_Javascript_Reactjs - Fatal编程技术网

Javascript 检查页面是否有添加类的链接

Javascript 检查页面是否有添加类的链接,javascript,reactjs,Javascript,Reactjs,函数用于检查当我单击导航栏上的按钮时,是否转到页面并在其上添加“活动”类 checkToActive(to) { return (to === this.props.location.pathname) ? 'Active' : ''; } 我的纽扣 <Button state={this.checkToActive("/listening")} text="Listening" to="/listeni

函数用于检查当我单击导航栏上的按钮时,是否转到页面并在其上添加“活动”类

 checkToActive(to) {
           return (to === this.props.location.pathname) ? 'Active' : '';
    }
我的纽扣

 <Button state={this.checkToActive("/listening")} text="Listening" to="/listening" />

所以。。当我点击并进入页面/收听时,按钮“激活”课堂,但当我进入/收听/子页面时,按钮没有。。我能做些什么来让它工作


谢谢。

react router
v4中,如果要在路由匹配时执行条件样式设置或应用类,可以使用


这里已经给出了答案:

如下更改代码:

 checkToActive(to) {
           return (this.props.location.pathname.contains(to)) ? 'Active' : '';
    }

试试这个:

checkToActive(to) {
    return this.props.location.pathname.includes(to) ? 'Active' : '';
}

使用而不是严格的比较,我如何用我的代码做到这一点@95FAF8E76605E973您可以使用React NavLink而不是导航栏中的按钮,文档:或查看我答案中的工作示例。我不想在按钮组件上使用NavLink。。我只想使该函数与子页面一起工作:/I不想使用它,我在我的按钮组件上使用:{html}。通过使用它,您不需要自定义函数每次验证url以应用类,这是内置功能。例如:Home您可以共享/listing/subPage按钮的代码吗?我建议您使用console.log您的this.props.location.pathname值。可能url与子页面中的“to”变量不匹配