Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.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
Reactjs 如何在';反应';或者如何更改在react中滚动的window.loaction.hash_Reactjs_Scroll_Location_Window_Nav - Fatal编程技术网

Reactjs 如何在';反应';或者如何更改在react中滚动的window.loaction.hash

Reactjs 如何在';反应';或者如何更改在react中滚动的window.loaction.hash,reactjs,scroll,location,window,nav,Reactjs,Scroll,Location,Window,Nav,我正在使用react,我正在构建一个单页应用程序,我不想使用react路由器 我只有一个页面和部分,每个部分(或react中的组件)都有一个散列,我想在scroll上更改活动导航链接,或者我想在scroll上更改窗口位置散列,以便活动类在scroll上工作。。。。 请帮忙 const ref = React.useRef(null); const handleScroll = () => { if (ref.current ) { setSticky(re

我正在使用react,我正在构建一个单页应用程序,我不想使用react路由器 我只有一个页面和部分,每个部分(或react中的组件)都有一个散列,我想在scroll上更改活动导航链接,或者我想在scroll上更改窗口位置散列,以便活动类在scroll上工作。。。。 请帮忙

  const ref = React.useRef(null);
 

  const handleScroll = () => {
    if (ref.current ) {
      setSticky(ref.current.getBoundingClientRect().top <= 0);
    }
    

  };

  
  React.useEffect(() => {
    window.addEventListener('scroll', handleScroll);
    window.addEventListener("scroll", () => {
      setScroll(window.scrollY > 200 );
  
    });
   
    return () => {
      window.removeEventListener('scroll', () => handleScroll);
    };
    
  }, []);
    return (<Container fluid className='p-0'>
<Navbar  ref={ref}  fixed={isSticky ? 'top': '' } className='nav_bar ' expand="lg">
  <Navbar.Toggle  aria-controls="basic-navbar-nav" ><FontAwesomeIcon style={{color:'#fff'}} icon={faBars}/></Navbar.Toggle>
  <Navbar.Collapse id="basic-navbar-nav">
  <Nav className='ml-5'>
  <Nav.Item>
    <Nav.Link  className={`${scroll  ? 'active':''} nav_link px-5`}   href="#home">home</Nav.Link>
  </Nav.Item>
  <Nav.Item>
    <Nav.Link  className={`${scroll   ? 'active':''} nav_link px-5`} href='#about' >about</Nav.Link>
  </Nav.Item>
  <Nav.Item>
    <Nav.Link  className={`${scroll   ? 'active':''} nav_link px-5`} href='#portfolio' >portfolio</Nav.Link>
  </Nav.Item>
  <Nav.Item>
    <Nav.Link  className={`${scroll   ? 'active':''} nav_link px-5`} href='#contact' > contact
    </Nav.Link>
  </Nav.Item>
</`Nav`>
  </`Navbar.Collapse`>
</`Navbar`></Container>
        );
}
i tried this method but i failed and all links show active at once
const ref=React.useRef(null);
常量handleScroll=()=>{
如果(参考电流){
setSticky(参考当前的getBoundingClientRect().top{
window.addEventListener('scroll',handleScroll);
window.addEventListener(“滚动”,()=>{
设置滚动(窗口滚动>200);
});
return()=>{
removeEventListener('scroll',()=>handleScroll);
};
}, []);
返回(
家
关于
文件夹
接触
);
}
我尝试了这个方法,但失败了,所有链接都立即显示为活动状态