【问题标题】:#href not working using State & Scrollspy in React App#href 无法在 React App 中使用 State & Scrollspy
【发布时间】:2021-10-25 21:24:05
【问题描述】:

在 React 中升级我的投资组合并遇到 href 不适用于我的 React 应用程序的问题。这是导航栏代码。直播网站在这里。 https://cigiportfolio.netlify.app/

我相信它与使用状态与滚动间谍结合使用有关。可能是我看了太久没搞清楚细节

import Scrollspy from "react-scrollspy";
import Social from "../SocialTwo";
import { NavLink } from "react-router-dom";

const Header = () => {
  const [click, setClick] = useState(false);
  const handleClick = () => setClick(!click);
  const [navbar, setNavbar] = useState(false);

  const changeBackground = () => {
    if (window.scrollY >= 80) {
      setNavbar(true);
    } else {
      setNavbar(false);
    }
  };

  window.addEventListener("scroll", changeBackground);

  return (
    <>
      <div className="cigi_topbar">
        <div className={navbar ? "topbar_inner opened" : "topbar_inner"}>
          <div className="logo">
            <NavLink to="/">
              <img src="/img/logo/new/smCTGearonly.png" alt="partners brand" />
            </NavLink>
          </div>
          {/* End logo */}
          <div className="menu">
            <Scrollspy
              className="anchor_nav"
              items={["home", "about", "portfolio", "skills", "contact"]}
              currentClassName="current"
              offset={-200}
            >
              <li>
                <a href="#home">Home</a>
              </li>
              <li>
                <a href="#about">About</a>
              </li>
              <li>
                <a href="#portfolio">Portfolio</a>
              </li>
              <li>
                <a href="#skills">Skills</a>
              </li>
              <li>
                <a href="#contact">Contact</a>
              </li>
              
            </Scrollspy>
          </div>
          {/* End menu */}
        </div>
      </div>
     

【问题讨论】:

    标签: javascript reactjs use-state portfolio scrollspy


    【解决方案1】:

    查看react-ui-scrollspy

    完全披露:我维护这个包。

    1. 在您的导航组件中
    <div>
      <p data-to-scrollspy-id="first">Section 1</p>
      <p data-to-scrollspy-id="second">Section 2</p>
    </div>
    
    1. 将要监视的元素包装在&lt;ScrollSpy&gt; 组件中。
    import ScrollSpy from "react-ui-scrollspy";
    
    <ScrollSpy>
      <div id="first">
        Lorem ipsum dolor sit amet consectetur adipisicing elit. Aut dolores
        veritatis doloremque fugit. Soluta aperiam atque inventore deleniti,
        voluptatibus non fuga eos magni natus vel, rerum excepturi expedita.
        Tempore, vero!
      </div>
      <div id="second">
        Lorem ipsum dolor sit amet consectetur adipisicing elit. Aut dolores
        veritatis doloremque fugit. Soluta aperiam atque inventore deleniti,
        voluptatibus non fuga eos magni natus vel, rerum excepturi expedita.
        Tempore, vero!
      </div>
    </ScrollSpy>
    
    1. index.css 中处于活动状态的导航元素编写样式
    .active-scroll-spy {
      background-color: yellowgreen;
      border-radius: 15px;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-15
      • 2020-08-23
      • 2017-04-01
      相关资源
      最近更新 更多