How to prevent duplicate Modal Popup amp; not scrolling to last element in ReactJS(如何防止重复弹出模态(A)不滚动到ReactJS中的最后一个元素)
本文介绍了如何防止重复弹出模态(&A)不滚动到ReactJS中的最后一个元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在创建一个项目,在该项目中,我使用map()
从服务器获取数据,并使用10
呈现10
不同Bootstrap卡中的数据。每张卡都有一个弹出模态的按钮。在我旁边,我设置了一个Link
TO按钮,它将向我显示数据路由。信息
- 对模式使用
react-bootstrap
与hooks
- 使用
react-router-dom
显示route
- 使用
useState
挂钩将提取数据中的数据设置为模式。 - 所有代码都在一个组件中。
info_prop
&;info
不同,但使用相同的数据。- 我已经
import
所有需要的东西&&;没有任何warning or error
- 关于数据处理
- 首先我使用
chapterId
通过useGetDataQuery()
获取数据。 - 映射数据&;解析
info
数据&;设置为状态为setInfo
- 使用
info
发送到模态道具 - 使用
handleModal
发送到setInfo
的句柄。我也试了一下,没有这个功能。那次我是在onClick
做的。
- 首先我使用
问题
- MAP()的路由问题
- 我使用
Button
显示Modal
&;用Link
包装按钮。每个Link
都有一个像1:1, 1:2, 1:3...1:10
这样的唯一ID。如果我单击1:1
按钮,它会显示1:1
内容。但是当我关闭模式时,路线自动更改为1:1
为1:3...1:10
。 - 我可以意识到它在main
Modal
后面呈现了一个副本Modal
。我只能看到3-4行后模态。
- 我使用
- 模态问题
- 当我用弹出模式的MAP&;点击按钮显示1-5个数据时,模式显示正常,背景模糊。
- 当我用弹出模式的地图&;点击按钮演示1-10数据时,背景变成纯黑色。(我觉得这不正常)
依赖项
- Reaction-Bootstrap v5
- Bootstrap v5
- REACT-ROUTER-DOM v6
代码
- 组件代码。
Modal
在同一组件中,但在另一个函数中。
推荐答案
问题看起来像是您使用显示模式的处理方式
show={modalShow}
每当您单击一个按钮来显示您的模式时,它们都会显示,因为它们都从modalShow中显示了show mode true。不使用showModal状态,请尝试执行以下操作:
<TafsirModal />
几个级别就可以做到这一点
这篇关于如何防止重复弹出模态(&A)不滚动到ReactJS中的最后一个元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!