我有文件导出'item-state-manager.js':
module.exports.aggregate_states = function (member_states) {
console.log(member_states);
}
Run Code Online (Sandbox Code Playgroud)
其他文件应导入此模块并使用函数'aggregate_states':
var aggregate_states = require("./item-state-manager.js")
module.exports.saveItem = function () {
var aggregate = aggregate_states("state");
}
Run Code Online (Sandbox Code Playgroud)
但我收到错误:
TypeError: aggregate_states is not a function
Run Code Online (Sandbox Code Playgroud)
我导入'item-state-manager.js'错了吗?
据我所知,require返回module.exports对象.
如果aggregate_states是您要导出的唯一函数,请使用此函数.
module.exports = function (member_states) {
console.log(member_states);
}
Run Code Online (Sandbox Code Playgroud)
否则像这样导入它.
var aggregate_states = require("./item-state-manager.js").aggregate_states;
Run Code Online (Sandbox Code Playgroud)
TypeError: (0 , _store.withToken) is not a function最近,在项目上运行我的(最小)测试套件时,我遇到了同样的错误。令人困惑的是,该函数withToken在许多测试中表现良好,但在其他测试中则不然。
经过大量研究,我最终将其范围缩小为循环依赖问题。
重构我的代码以消除循环依赖性解决了问题并且错误消失了。具体来说,我必须将一些相互引用的文件放入一个更大的文件中,该文件不太整洁,但消除了这个问题。
在我的实例中,因为我的withToken函数引用了store和 被store引用的withToken,所以两个函数不能同时设置,因此要设置store,withToken需要导入,并且使用withToken它需要导入store。
| 归档时间: |
|
| 查看次数: |
4433 次 |
| 最近记录: |