Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React中未定义导入的函数_Javascript_Reactjs - Fatal编程技术网

Javascript React中未定义导入的函数

Javascript React中未定义导入的函数,javascript,reactjs,Javascript,Reactjs,在file1.js中: const doSomething = () => { console.log('yay'); }; export { doSomething }; //simplified, not using export default due to multiple exports 在file2.jsx中: import { doSomething } from './file1.js'; doSomething(); //undefined 我想解决这个问

在file1.js中:

const doSomething = () => {
  console.log('yay');
};

export { doSomething }; 
//simplified, not using export default due to multiple exports
在file2.jsx中:

import { doSomething } from './file1.js';

doSomething(); //undefined 
我想解决这个问题已经有一段时间了。尝试从一个类导入此方法并将其作为组件的onClick添加,但它始终未定义。我们将不胜感激

edit1:修复了简化代码中的导入

fil1.js

export const doSomething = () => {
    console.log('yay');
};
file2.js

import { doSomething } from './file1.js';

doSomething();
你可以试试这个。 像这样在file2.js中导入file1.js

import*作为演示从“/file1.js”导入

然后像这样调用函数


demo.doSomething()

问题是您调用的函数不会返回任何内容

如果执行
console.log(doSomething())
, 你会得到这样的日志

yay //you called a functions its executed
undefined // you called a function which will not return anything
第一个日志来自
doSomething
file1.js
文件


第二个日志来自
file2.jsx
将函数表达式更改为函数声明。函数声明由解释器在应用程序启动之前创建

函数表达式创建一个等于未定义的变量

  • 如果在
    file1
    之前执行
    file2
    ,则doSomething变量未定义
  • 如果
    file1
    file2
    之前执行,则doSomething变量是指向函数的链接

详细解释code@VaibhavS在我看来,已经发布的代码似乎是问题的完整再现。您认为缺少什么?提供的代码只是实际代码的简化版本。一个文件中有一个函数,我希望导出该函数并在另一个文件中调用它。我不确定您发布的代码中出现问题的原因。看看这个例子:这和你想要达到的目标不同吗?不,差不多。我尝试导出的函数没有被导出(控制台日志记录导入的内容显示了3个导出函数中的2个,缺少的是我想要的函数)导入路径是正确的,这只是我简化的复制中的一个错误。刚才我注意到您正在尝试导入jsx文件。这段代码可能会回答这个问题,提供关于它如何和/或为什么解决这个问题的额外上下文,这可能会有所不同。这让我更进一步。看起来我的方法实际上没有被导出。执行console.log(demo)返回我正在导出的另外两个函数,但不是所需的函数