我有一个包含以下代码的JS文件:
module.exports = function loadMyFun() {
function activateSite($currentItem) {
...
}
...
}
而且我想将其导入到JSX文件中,我试图这样做,但我无法正常工作:
import MyNav from './MyNav.js';
const top = MyNav.activateSite();
componentDidMount () {
var self = this;
MyNav.activateSite($(self));
}
...
我收到此错误:
未捕获的TypeError:_MyNav.default.activateSite不是函数
任何想法如何解决这个问题?
最佳答案
如果您提供的代码实际上是您要加载的模块,则该模块存在一些问题。
您正在导出构造器loadMyFun
,在导入后不调用/实例化它。
如果要像这样const myNav = new MyNav()
实例化构造函数,则将具有导出的构造函数的实例。
为了使您的activateSite
函数正常工作,您必须将其分配给实例本身,并通过像这样分配它来将其移出loadMyFunc
的本地范围:
如果不需要在this.activateSite = function(){...}
函数周围包含任何信息,我建议您使用函数而不是activateSite
方法导出对象。
//myModule.js
module.exports = {
activateSite: function(){ ... }
}
//otherFile.js
import { activateSite } from './myModule.js' // With destructuring
activateSite()
import myModule from './myModule.js' // Without destructuring
myModule.activateSite()
关于javascript - 将功能从JS导入JSX,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45297251/