Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.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 如何访问功能组件中CSS模块设置的哈希类名?_Javascript_Reactjs - Fatal编程技术网

Javascript 如何访问功能组件中CSS模块设置的哈希类名?

Javascript 如何访问功能组件中CSS模块设置的哈希类名?,javascript,reactjs,Javascript,Reactjs,我有一个类名“nav”,我不能使用querySelector来定位它,因为CSS模块将类名散列为类似nav xyzxyz的内容。为了使事情进一步复杂化,我需要检查类为“nav”的元素上是否存在类,但“is open”和“nav”都是散列的 if (nav.classList.contains("is-open")) 根据您的信息,我假设您的组件代码如下所示: <div class={classes.is-open}></div> 但作为替代方案,您可以这样做: &

我有一个类名“nav”,我不能使用querySelector来定位它,因为CSS模块将类名散列为类似nav xyzxyz的内容。为了使事情进一步复杂化,我需要检查类为“nav”的元素上是否存在类,但“is open”和“nav”都是散列的

if (nav.classList.contains("is-open"))

根据您的信息,我假设您的组件代码如下所示:

<div class={classes.is-open}></div>

但作为替代方案,您可以这样做:

<div className={`${classes.App} is-open`}>


然而,这听起来像是你在试图实现你应该在国家里做的事情。我会先调查一下

我建议您使用className而不是classList,并包括方法:

if (nav.className.includes("is-open"))

谢谢,但是当我使用CSS模块时,我如何定位
document.querySelector(“.nav”)
,因为
.nav
类名是散列的。从我的头顶开始-document.querySelector(“[class^=nav]”)。为什么不使用
ref
而不是DOM访问?不要使用DOM作为应用程序状态。保持该状态独立,并根据您自己的数据应用正确的类,而不考虑当前的DOM。否则,你就是在对抗React,你只会面临问题。