我正在尝试从函数文件中导入单个函数。函数文件看起来像这样。
const Functions = {
url(path = '') {
path = path.replace(/^\/+/, '');
return `${document.baseURI}/${path}`;
},
asset(path = '') {
return this.url(path);
}
};
export default Functions;
然后我尝试像这样导入url
函数。
import {url} from "../Utils/Functions";
当我这样做时,我在browserify中的浏览器中收到以下错误。
未捕获的TypeError:(0,_Functions.url)不是函数
根据MDN文档,此导入应该在url
对象中Functions
时有效。
我做错了什么?
答案 0 :(得分:3)
你做了什么 - 导出了一个对象。
在这种情况下,您需要导入一个对象并访问其属性:
import Functions from "../Utils/Functions";
Functions.url();
如果要进行命名导出 - 您需要更改导出和定义它的方式:
function url(path = '') {
path = path.replace(/^\/+/, '');
return `${document.baseURI}/${path}`;
}
function asset(path = '') {
return this.url(path);
}
export { url, asset };
或
export function url(path = '') {
path = path.replace(/^\/+/, '');
return `${document.baseURI}/${path}`;
}
export function asset(path = '') {
return this.url(path);
}
另一个注意事项:即使它看起来很相似,也不是解构。标准将其命名为ImportsList
并定义其自己的语义,与解构的语义不同。
参考文献:
答案 1 :(得分:0)
如果您使用'默认导出'那么导入应该是:
import Functions from "../Utils/Functions";
实际上,您可以使用您喜欢的任何标识符导入它(不仅仅是'功能')