【发布时间】:2019-11-21 23:00:55
【问题描述】:
假设我有一个包含多个组件“评论”的组件“帖子”。当我输入这样的 URL 时,我想让该应用程序在带有该锚点的评论上向下滚动:
/post/:postId/#commentId
我已经在工作 postId route /post/:postId
我尝试使用 react-hash-link npm 包来实现它,但它没有按预期工作。
每条评论都有自己的 ID,设置在组件上,如下所示:
<div class="post">
<div class="post-header">
<div class="post-header-avatar">
SOME TEXT
</div>
<div class="post-header-info">
SOME TEXT
</div>
</div>
<div class="post-content">
<span>POST CONTENT</span>
</div>
<div class="post-likers-container">
<div class="post-likers-header label">People who like this post</div>
<div class="post-likers">
SOME TEXT
</div>
</div>
<div class="post-comments">
<div class="comments ">
<div class="comments-all label">Comments</div>
<div class="comments">
<div class="comment" id="5d27759edd51be1858f6b6f2">
<div class="comment-content">
COMMENT 1 TEXT
</div>
</div>
<div class="comment" id="5d2775b2dd51be1858f6b720">
<div class="comment-content">
COMMENT 2 TEXT
</div>
</div>
<div class="comment" id="5d2775ecdd51be1858f6b753">
<div class="comment-content">
COMMENT 3 TEXT
</div>
</div>
</div>
</div>
</div>
</div>
例如,如果我打开这样的 URL:
/post/postId/#5d2775ecdd51be1858f6b753
我想打开帖子页面,它会向下滚动到带有 # 锚点的评论。
有什么方法可以实现吗?
【问题讨论】:
-
在您的实际代码中,您是如何生成 cmets 的?可能通过 .map(),或者这只是硬编码?
-
我正在使用列表迭代生成 cmets 并使用 Comment 组件映射它们
-
@SaltyTeemooo 你对我下面的解决方案有任何疑问吗 :)
标签: javascript html reactjs