javascript - 如何使用 JavaScript 选择 GatsbyJS 中的元素

标签 javascript reactjs gatsby

我的目标是检查导航栏中“hamburger”类的 onClick 事件。

我已经设置了组件并设置了相应的样式,但是,我不确定如何插入以及在哪里插入 JavaScript 来选择此元素并添加事件监听器。

这是我当前的代码:

import React from "react"
import { Link } from "gatsby"
import "../styles/master.scss"
import headerStyles from "./header.module.scss"

const Header = () => {
  return (
    <header className={headerStyles.headerFlex}>
      <nav>
        <div className={headerStyles.hamburger}>
          <div className={headerStyles.line}></div>
          <div className={headerStyles.line}></div>
          <div className={headerStyles.line}></div>
        </div>
        <ul className={headerStyles.navLinks}>
          <li>
            <Link to="/blog" activeClassName="active">
              blog
            </Link>
          </li>
          <li>
            <Link to="/about" activeClassName="active">
              about
            </Link>
          </li>
          <li>
            <Link to="/portfolio" activeClassName="active">
              portfolio
            </Link>
          </li>
          <li>
            <Link to="/contact" activeClassName="active">
              contact
            </Link>
          </li>
        </ul>
      </nav>
    </header>
  )
}

export default Header

最佳答案

您可能想查看Handling Events in the React Documentation了解这一点。以下是连接后代码的示例:

import React from "react"
import { Link } from "gatsby"
import "../styles/master.scss"
import headerStyles from "./header.module.scss"

const Header = () => {
  const someAction = () => {
    console.log("Clicked")
  }
  return (
    <header className={headerStyles.headerFlex}>
      <nav>
        <div className={headerStyles.hamburger} onClick={someAction}>
          <div className={headerStyles.line}></div>
          <div className={headerStyles.line}></div>
          <div className={headerStyles.line}></div>
        </div>
        <ul className={headerStyles.navLinks}>
          <li>
            <Link to="/blog" activeClassName="active">
              blog
            </Link>
          </li>
          <li>
            <Link to="/about" activeClassName="active">
              about
            </Link>
          </li>
          <li>
            <Link to="/portfolio" activeClassName="active">
              portfolio
            </Link>
          </li>
          <li>
            <Link to="/contact" activeClassName="active">
              contact
            </Link>
          </li>
        </ul>
      </nav>
    </header>
  )
}

export default Header

关于javascript - 如何使用 JavaScript 选择 GatsbyJS 中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59810485/

相关文章:

javascript - 真正具有特定类别的下一个元素

javascript - 谷歌地图 API : How to draw "curved" flight route polygon line between two markers?

javascript - native Ui 组件与 native 模块

javascript - 如何避免 AngularJS 中的 index.html 臃肿?

reactjs - React Select 与自定义 MultiValueContainer 和 Apollo Mutation 不合作

reactjs - 在 Gatsby Single Post 中渲染来自 WordPress 帖子内容的图像

reactjs - RactiveJS 和 JSX

Javascript - 将数组搜索中的第一个值与其他数组中的值匹配

reactjs - 使用react-三纤在 gatsby 站点中加载 gltf

css - 部分css添加flex后渲染延迟