当前位置: 首页 > 面试题库 >

导入旧的ES5模块以在ReactJS组件中使用

蒋阳华
2023-03-14
问题内容

我正在尝试在新的ReactJS应用程序中使用ES5模块,并且正在努力了解如何正确导入该模块,以便可以找到并执行其中的主要功能。

我正在加载模块; import 'air-datepicker';

我知道我在这里做错了,对于一个没有适当导出功能的旧库,它不是那么简单!

无论如何,我应该能够使用现有的div手动初始化日期选择器。

$('#myDiv').datepicker();

我已经尝试了导入和需求的多种变体,但是我总是遇到相同的错误-“ datepicker不是函数”。

我正在尝试的库是air-datepicker。我已经使用npm安装了模块,没有任何问题,而且我知道该库可以完美运行,而无需在通过脚本标签手动加载脚本的简单页面上使用React。我的ReactJS应用程序是从FB教程页面使用’create-
react-app’创建的基本模板。


问题答案:

好吧,那是我生命中的一天,我再也回不来了!

该问题是由Babel导入订购引起的。导入语句被吊起-意味着它们在执行任何其他代码(即,我的窗口分配)之前首先被评估。这是通天的“
设计 ”。

据我所知,避免Babel吊装的唯一方法是完全避免“进口”,而改用require。

因此,当您需要air-datepicker时,将按照以下顺序设置全局$。如果您尝试“导入” air-
datepicker,它将无法正常工作,因为Babel将在执行窗口之前评估所有导入语句。分配。

import $ from 'jquery';
window.$ = $;
require('air-datepicker');

还有一种或两种其他方法也可以使用,但是它们都不是很理想,因为它们需要您手动配置webpack-即“弹出” create-react-
app配置并单独进行…

使用imports-loader ;

// only works if you disable no-webpack-loader-syntax
require("imports?$=jquery!air-datepicker");

或者,使用ProvidePlugin,使该模块可用于所有模块。



 类似资料:
  • 问题内容: 我已尝试找到有关最佳使用还是全面的指南。我刚开始使用Python,并且正在尝试着眼于最佳实践。 基本上,我希望有人能分享他们的经验,其他开发人员有什么喜好,以及避免遇到麻烦的最佳方法是什么? 问题答案: 和之间的区别主要是主观的。选择最喜欢的一个,并在使用中保持一致。这里有一些要点可以帮助你做出决定。 优点: - 减少维护你的import报表。无需添加任何其他导入即可开始使用模块中的另

  • 在以前的版本中,我刚刚能够生成这样的新组件。。。 错误:多个模块匹配。使用skip-import选项跳过将组件导入最近的模块。 然后我试着。。。 错误:指定模块不存在 然后我试着。。。 错误:指定模块不存在

  • 问题内容: 我正在编写pytest插件,该插件应测试旨在在一组特定环境中运行的软件。 我正在编写的软件在一个更大的框架内运行,这使某些Python模块仅在框架内运行我的Python软件时可用。 为了测试我的软件,我需要“模拟”或伪造整个模块(实际上是很多模块)。我需要以某种类似的方式实现其功能,但是我的问题是,如何使用py.test插件将该虚假的Python模块提供给我的软件代码? 例如,假设我的

  • 当我的应用程序大小增加时,很难提到组件/模块/scss的导入路径 例如,如果组件结构足够深。要导入,我们必须提到从“../../../../someComponent”导入{something}继续。 有没有一种方法可以像定义模式一样定义它们 例如: Schema.json 我们可以直接从'someComponent'导入为

  • 问题内容: 在Python中,我有一个 模块 myModule.py,其中定义了一些函数和一个 main() ,它接受了一些命令行参数。 我通常从bash脚本中调用此main()。现在,我想将所有内容放入一个小 包装中 ,因此我想也许可以将我简单的bash脚本转换为Python脚本并将其放入包装中。 因此,实际上如何 从 MyFormerBashScript.py 的main()函数 调用 myM

  • 问题内容: 我正在尝试使用该软件包在R中导入python模块。该模块可以在这里找到。我克隆了存储库并运行成功。如果打开python shell,则可以导入。但是,当我尝试将其导入RStudio时,出现以下错误: 我在macOS Sierra版本10.12.6上并通过Anaconda安装了python 3.6。我也尝试过给出python的路径为: 当我从终端运行python时,我得到: 不确定pyt

  • 问题内容: 我正在尝试在Python 2.7.2中使用并遇到奇怪的错误。 考虑以下目录结构: 具有以下代码: (在真实代码中有一个名称。) 尝试到时,产生以下错误: 我想念什么? 谢谢! 问题答案: 对于相对进口,您必须: a)使用相对名称 b)明确提供锚点 当然,您也可以只执行绝对导入: