【发布时间】:2019-06-14 01:37:31
【问题描述】:
为了更清楚,基本上我想做的就像亚马逊一样
会有一堆产品,一旦你点击产品,只有那个产品和它的细节会显示在Popup Modal上。
在我的例子中,我在一个数组中存储了 3 个数据,我已经将它映射出来,它创建了 3div 和 3Modal Popup,每个都带有按钮。
单击第一个 div 的按钮后,我希望只为第一个 div 打开模式。
但是现在当我点击按钮时所有 3 Modal Popup。
我是 React 新手,我可以在 JQuery 和 Javascript 中做同样的事情,但我无法在 React 中实现。
或者有更好的方法吗? Like 而不是循环创建 3modal popup 我们可以只创建一个modal popup,它将显示正在单击哪个按钮的特定div的数据?
我当前的代码:
App.js,我在哪里创建了数组
Product.Js 它被映射到 3div 并且还有模态弹出窗口
如果你们需要更多详细信息,请告诉我
谢谢你们。
但是当我点击任何按钮时,弹出所有 div 的弹出窗口,这就是问题
【问题讨论】:
-
全局状态呢?你使用 mobX 或 redux,还是新的 react 上下文 API...?
-
对我来说,modal 应该是单独的组件,并且生成它取决于值 showModal。你可以在没有 showModal: boolean 的情况下做它 - 只需调用 jQuery modal,但它很乱。一般来说,jQuery 并不是真正的反应式。你可以使用 react-bootstrap 包——它不使用 jQuery,它是响应式的。
-
@Zydnar ,我是 React 新手,所以我没有使用 redux .etc。它只是反应而已
-
好的,但是我将如何弹出特定的 div?让我张贴图片
-
Reactive 表示变量更改 --> 所有依赖的视图更改/操作都会被触发。所以你可以使用继承自 React.Component 的方法 - componentReceivedProps - 如果
showModal是你运行你的jQuery函数的道具。或者干脆不使用 state 中的这个 prop,让 jQuery 处理一些 HTML。因此,在 Product 组件中创建带有模态内容的并在getModal上运行,传统上是 jQuery。所以需要有它的 id 所以运行它$(id).modal('open');
标签: javascript reactjs jsx