我对设置这个过于简单的页面的内容结构感到好奇。有一个导航/菜单栏,其中包含指向页面下方引用内容的锚点的链接。我不需要基于反应路由器的 URL 散列或历史跟踪。我不想在导航栏中进行 DOM 查询,但我看到的问题是我当前的设置将这些组件作为同级组件,因此ref为组件创建 's 意味着我必须创建一个 janky 中间处理程序以在 2 之间传递它们地方。
主应用
const App = () => {
return (
<Provider store={store}>
<div className="app">
<Navibar />
<Jumbo />
<About /> // should have a ref
<Projects /> // should have a ref
<Contact /> // should have a ref
</div>
</Provider>
);
};
导航栏详细信息
handleClick = (e) => {
window.scrollTo({
top:this.myRef.current.offsetTop,
behavior: "smooth"
})
}
<NavLink href="#about" onClick={this.handleClick}>About</NavLink>
在主应用程序级别,我不需要将其设为具有道具/状态的类,它应该只是一个功能组件。也许这就是我的逻辑有缺陷的地方?但是,如果我让 App 组件接受 refCallbacks 并将它们传递给 Navibar,那会解决它吗?