首页 > 解决方案 > 创建新的 Stock List Item 不会打开 Materialise Modal,但初始状态项目有效

问题描述

这是我在 Stack Overflow 上的第一篇文章。很高兴成为社区的一员!

我正在创建一个股票市场应用程序项目。我遇到了一个有趣的问题。我在我的项目中通过 Bootstrap 使用 Materialize。我正在用 React 编码。在我的初始状态下,我有 2 支股票,Apple 和 FaceBook。每当我单击它们时,都会打开模式,每个模式都会显示更多股票信息。但是每当我添加新股票(如 JPM)时,该项目就会出现,但每当我点击时,它就不会打开。

在物化中,您使用 jquery 初始化模式,如下所示(index.html)。然后你像我一样在每个项目上进行 href 和 ID 匹配。我检查了为摩根大通创建的新产品,它说 href="#JPM" 和 id="JPM" 就像其他工作一样。我唯一能想到的是,也许每当 jquery 初始化时,当我添加一个项目时,它也没有被初始化?但我不确定,因为它只是一行简单的代码:

$('.modal').modal();

Def在这里很困惑。github存储库如下。我还将发布我的 StockItem.js 文件的一些屏幕截图。https://github.com/Christopher-Bowling/Stock-Market-App

图片: Index.html StockItem.js

标签: reactjsapitypeerrordispatch

解决方案


每次创建需要初始化的新元素时,都需要运行组件初始化。

当你运行 $('.modal').modal() 时,jQuery 会查找 dom 中的任何元素并在其上运行 .modal() 函数 - 一次。任何动态添加的元素(在此初始值运行后添加)将表现得好像您根本没有运行过初始化。在选择文档页面上涉及到它:

初始化

此外,您需要单独调用页面生成的任何动态生成的选择元素。您必须初始化选择元素,如下所示。

https://materializecss.com/select.html


推荐阅读