当用户通过锚链接导航到页面时,我希望页面向下滚动到我的锚标签.

我使用的是react router 4,我定义如下:

导航栏:

export default (props) => {
  const { 
    updateModal,
    updateRoute,
  } = props
  return(
    <Navbar fluid collapseOnSelect>
      <Nav>
        <NavDropdown eventKey="4" title="Solutions" id="nav-dropdown" noCaret>
          <MenuItem eventKey="4.1">
             <Link to='/solution#ipos'>TESTING ANCHOR</Link>
          </MenuItem>
...

一些路由:

export default class extends Component {
  constructor() {
    super()
    this.state = {
      isLoading: true
    }
  }
  render() {
    return (
      <Grid className='solutions' fluid>
       <Row className='someClass'>
        <div>
          <h2><a href='ipos' id='ipos'>Ipos morna santos paros</a></h2>
          ...

当我点击导航栏中的锚链接时,我可以在url和我的redux存储中看到哈希锚标记,它确实会导航到新路由,但不会向下滚动到标记本身.

是由我来创建滚动功能,还是它应该如何工作?

推荐答案

这是react路由的一个已知问题.(https://github.com/ReactTraining/react-router/issues/394#issuecomment-220221604)

还有一个解决方案.https://www.npmjs.com/package/react-router-hash-link这个包解决了这个问题.

你必须用这个Hash Link作为下面的Link.

import { HashLink as Link } from 'react-router-hash-link';

Reactjs相关问答推荐

LocalStore未存储正确的数据

使用setInterval判断数据的时间,然后在过期后从对象中删除;遇到性能问题

react 路由GUGUD Use Effect无法通过useNavigate正常工作

如何在React中正确地将密码输入类型切换为文本或反之亦然(下一页)

在构建或部署Reaction应用程序时出错

svg每条路径上的波浪动画

Javascript - 正则表达式不适用于 MAC OS - 编码?

太多的重新渲染 - React 中的无限循环.如何使用React.effect并使用fetch?

列表中的每个子项都应该有一个唯一的keyprops .在react 应用程序中

当 URL 与我声明的任何路由都不匹配时,如何使用不会重定向到错误页面的动态 URL? - react 路由 dom

组件安装后调用自定义钩子

将外部 JavaScript 导入 React(通过文件)

使用 map 循环浏览列表列表中的列表并显示它们

Primereact 的日历组件在每个月 12 日之后使用非唯一键生成

改变输入的默认值时出现问题:number react-hook-form

react-router v6 中的 BrowserRouter 和 createBrowserRouter 有什么区别?我可以在不使用数据 API 的情况下使用 createBrowserRouter 吗?

如何在 React Native 中更新跨屏幕呈现的上下文状态变量?

无法读取未定义的react native 的属性参数

多次响应获取发送请求

为什么我不能使用 formik 更改此嵌套对象中的值