我在处理一个项目时遇到问题,单击导航项时需要导航到页面的某个部分。
我按如下方式使用 Navlink 组件,无法将手放在解决方案上。
在我的导航组件工具栏.js中,我有以下有关导航项的代码。
工具栏.js
<li>
<NavLink
exact
activeStyle={{
fontWeight: 'bold',
color: 'red',
textDecoration: 'none'
}}
to="/"
>
agence
</NavLink>
</li>
然后我在主页中按如下方式使用该组件.js:
首页.js
return (
<Layout>
<Toolbar drawerClickHandler={this.drawerToggleClickHandler} />
<SideDrawer show={this.state.sideDrawerOpen} />
{backDrop}
<Conseil />
<div className={classes.white}></div>
<Sigles />
<NotreAgence />
<Prestations />
<ScrollableMenu />
<Form />
<Footer />
</Layout>
);
}
我正在尝试做的是在单击上面显示的"accueil"NavLink 时导航到"NotreAgence"组件。
我试图模仿html:
<a href="#scroll">Go to Title</a>
<div>
<h1 id="scroll">Title</h1>
</div>
如下:
<NavLink
exact
activeStyle={{
fontWeight: 'bold',
color: 'red',
textDecoration: 'none'
}}
to={{
pathname: '/',
hash: '#our-agency'
}}
>
agence
</NavLink>
并为div 标签提供"#our 机构"标签。
但它似乎不起作用。
我有点卡住了。有什么帮助吗?
非常感谢:)
to={{
pathname: '/',
hash: '#our-agency'
}}
当您有/在链接中时 - 它强制更新页面。 因此,如果您想访问当前页面上的部分,您只需使用
to="#our-agency">
快速更新以解决此问题。一种解决方案是使用react-scroll
库。
在导航菜单/栏中: 导入它=>import { Link } from 'react-scroll'
按如下方式定义导航项(使用问题的代码使其更清晰(:
Toolbar.js
import { Link } from 'react-router'
(...)
<li>
<Link
exact
activeStyle={{
fontWeight: 'bold',
color: 'red',
textDecoration: 'none'
}}
to="notreAgence"
>
agence
</Link>
</li>
为您的组件提供一个 id 属性,其值与Link
中的to
属性匹配。(这里是"第 1 节"。
Home.js
return (
<Layout>
...
<NotreAgence id='notreAgence' />
...
</Layout>
);
}
这就可以解决问题。
获取更多信息 : https://scotch.io/tutorials/implementing-smooth-scrolling-in-react