'React'滚动到页面上某个组件的方法是什么?
What is the 'React' way to scroll to a certain Component on the page?
我想要一个带有链接的页眉,可以滚动到页面上的这些部分。
我可以用 refs
以某种方式实现吗?也许 forwardRef
?
在 vanilla JS 中,我将通过以下方式实现:
onClick=(()=>{
let elm = document.getElementById('experience-head');
elm.scrollIntoView({
behavior: 'smooth',
block: 'start',
inline: 'nearest',
});
})
但是,这是我的应用程序的布局:
return (
<FPWrap>
<Header />
<SlantDivider id="slant-a" color="black" />
<About id="about" />
<SlantDivider color="black" />
<ExperienceHead id="experience-head" />
....
<Footer />
</FPWrap>
);
}
参考示例:
const Component = () => {
const myRef = useRef(null);
const executeScroll = () => myRef.current.scrollIntoView({ behavior: 'smooth', block: 'start' });
return (
<FPWrap>
<Header />
<SlantDivider id="slant-a" color="black" />
<About id="about" />
<SlantDivider color="black" />
<ExperienceHead ref={myRef} id="experience-head" />
<button onClick={executeScroll}> Click to scroll </button>
....
<Footer />
</FPWrap>
);
};
我想要一个带有链接的页眉,可以滚动到页面上的这些部分。
我可以用 refs
以某种方式实现吗?也许 forwardRef
?
在 vanilla JS 中,我将通过以下方式实现:
onClick=(()=>{
let elm = document.getElementById('experience-head');
elm.scrollIntoView({
behavior: 'smooth',
block: 'start',
inline: 'nearest',
});
})
但是,这是我的应用程序的布局:
return (
<FPWrap>
<Header />
<SlantDivider id="slant-a" color="black" />
<About id="about" />
<SlantDivider color="black" />
<ExperienceHead id="experience-head" />
....
<Footer />
</FPWrap>
);
}
参考示例:
const Component = () => {
const myRef = useRef(null);
const executeScroll = () => myRef.current.scrollIntoView({ behavior: 'smooth', block: 'start' });
return (
<FPWrap>
<Header />
<SlantDivider id="slant-a" color="black" />
<About id="about" />
<SlantDivider color="black" />
<ExperienceHead ref={myRef} id="experience-head" />
<button onClick={executeScroll}> Click to scroll </button>
....
<Footer />
</FPWrap>
);
};