Javascript 如何使元素在React.JS中按类名消失?

Javascript 如何使元素在React.JS中按类名消失?,javascript,reactjs,Javascript,Reactjs,我想在React中制作一个主题选择器。但是当我使用 document.getElementsByClassName[0].style.setProperty(“显示”、“无”); 要使元素消失,它将返回 TypeError:无法读取未定义的属性“setProperty” 有没有一种方法可以修复这个错误,或者用另一种方法使元素消失?提前感谢。当您尝试获取元素时,需要将类名作为参数传递,如下所示 document.getElementsByClassName('test') 然后,您可以尝试:

我想在React中制作一个主题选择器。但是当我使用

document.getElementsByClassName[0].style.setProperty(“显示”、“无”);
要使元素消失,它将返回

TypeError:无法读取未定义的属性“setProperty”


有没有一种方法可以修复这个错误,或者用另一种方法使元素消失?提前感谢。

当您尝试获取元素时,需要将类名作为参数传递,如下所示

document.getElementsByClassName('test')
然后,您可以尝试:

document.getElementsByClassName('test')[0].style.setProperty("display", "none")
一个小剪子:
按钮。addEventListener(“单击”,()=>{
文件
.getElementsByClassName(“测试”)[0]
.style.setProperty(“显示”、“无”);
});
元素
隐藏它
  • 假设你有'class=“0”-不要。即使可以,也不要使用数字ID和类名
  • 更改为更好的类名,如主题
  • 使用document.querySelector(“.theme”)获取第一个
  • 使用document.queryselectoral(“.theme”)获取所有这些文档
你可以用

document.querySelector(".theme").style.display="none";

隐藏它

如果不使用flex,也可以使用它

document.querySelector(".theme").setAttribute("hidden",true)

我会使用document.querySelector来代替日期为“0”的getElementsByClassName,OP在
getElementsByClassName
上有问题,这就是我的答案中也有这个问题的原因:)但是是的,有几种方法可以获取DOM元素。即使类是“0”,OP仍然需要
。getElementsByClassName(0)[0]
.getElementsByClassName(“0”)[0]
仍向我提供错误
类型错误:无法读取null的属性“style”
。我使用的是
document.querySelector(“.dark”).style.display=“none”
document.querySelector(".theme").setAttribute("hidden",true)