Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.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
试图在类中重写css时出现Javascript语法错误_Javascript_Css_Reactjs - Fatal编程技术网

试图在类中重写css时出现Javascript语法错误

试图在类中重写css时出现Javascript语法错误,javascript,css,reactjs,Javascript,Css,Reactjs,我试图在react js项目中隐藏组件,方法是选择组件类并将其更改为“无”,但出现了此语法错误 Syntax error: Unexpected token, expected ; (12:25) if (window.location.pathname === "/") { > 12 | handleChange(event){ | ^ 13 | 14 | var x =

我试图在react js项目中隐藏组件,方法是选择组件类并将其更改为“无”,但出现了此语法错误

Syntax error: Unexpected token, expected ; (12:25)
        if (window.location.pathname === "/") {
> 12 |         handleChange(event){
     |                          ^
  13 | 
  14 |         var x = document.getElementByClassName("kontaktformular");
  15 |         x.style.display = "none";
这是我的代码

if (window.location.pathname === "/") {
  handleChange(event) {
    var x = document.getElementByClassName("kontaktformular");
    x.style.display = "none";
  }
} else {
  x.style.display = "block";
}
你应该这样做

var x = document.getElementByClassName("kontaktformular");
if (window.location.pathname === "/") {
    x.style.display = "none";

} else {
  x.style.display = "block";
}

你可能想要这个:

handleChange(event) {
  var x = document.getElementsByClassName("kontaktformular")[0];
  if (window.location.pathname === "/") {
    x.style.display = "none";
  } else {
    x.style.display = "block";
  }
}
然而,这根本不是反应方式。正确的解决方案是不基于当前路由呈现联系人表单。
至少你会想用这样的东西:

render() {
  return (
    <div>
      ...
      { window.location.pathname !== "/" && <KontaktFormular /> }
      ...
    </div>
  );
}
render(){
返回(
...
{window.location.pathname!==“/”&&&}
...
);
}

参考:

函数调用后需要一个分号,尽管很难判断您要做什么。这可能是一个不好的代码,我不擅长js,但我的观点是我想在我的登录页上隐藏kontaktformular类的组件,但我想在所有其他页面上显示它。是的,为什么?没有必要在那里声明另一个函数。但是你正在声明和定义一个函数,所以在vanilla js中,你需要在声明和定义它之前编写函数Hanks man它修复了语法错误,但是代码没有按照我的要求工作,我想在我的登录页上隐藏类为kontaktformular的组件,所以在“/”中但在所有其他页面上,我希望它出现在那里,这可能是一个糟糕的代码,我不擅长js,但我的观点是我想在我的登录页面上隐藏类为kontaktformular的组件,但我希望它显示在所有其他页面>26 | var x=document.getElementByClassName(“kontaktformular”);这个错误出现在它上面请注意,它是GetElementsByCassName,它返回一个集合。它们中的任何一个都不起作用,这是我作为第一个选项尝试的反应方式,但它在我的所有页面中都隐藏了它。。我想不出来why@SebastiánDanáč这意味着该条件永远不会为真,因此您需要找出
…pathname
的实际值。您是否尝试了
console.log(window.location)返回JSX之前?位置{replace:ƒ,assign:ƒ,href:,,ancestorOrigins:DOMStringList,origin:,…}-这是控制台sad@Sebasti没错,但是
.pathname
呢?如果您使用的是
react router
,那么肯定有更好的方法来确定当前页面是哪一个?