React router ,我想在页面跳id锚点,怎么办呢

#1

用React router构建的,在本页只要地址一变,就直接渲染了,根本没有机会跳本页的id锚点,怎么办呢

1 Like
#2

我现在也同样面临类似问题,第一次的渲染会让锚点失效,比如:/article/12345#header2,如果如果以该路径作为入口,锚点是无效的。

能想到两种:

  • 利用js手动scroll
  • 用server rendering,把第一次的渲染交给server(这一点还在实践中)

不过根据描述,并不知道题主是否和我遇到类似的问题。

#3

是啊,和你一样,在当前页可以用 <Route ignoreScrollBehavior={true} /> 实现,但是从其他路由跳过来是不会定位到锚的,迷茫中

#4

可以使用html元素的scrollIntoView方法,可以参考下面的网站

2 Likes
#5

好厉害

#6

scrollIntoView 方法

我马上去实验。如果成功的话,我在来回复一遍。

#7

方法可以。。