在React中使用module.exports和async的奇怪行为

时间:2017-10-27 01:01:17

标签: node.js reactjs async-await node-modules

这是一个令我困惑的非常奇怪的问题。在使用create-react-app创建React应用程序后,我添加了这两个文件:

TestMod.js

const TestMod = {
  doSomething() {
  }
};

module.exports = TestMod;

Test.js

import React, { Component } from 'react';
import TestMod from './TestMod';

export default class Test extends Component {  
  render() {
    TestMod.doSomething();
    return <div>Testing</div>;
  }
}

我在Test中包含App组件,运行npm start,一切正常。然后我将doSomething更改为async,就像这样

TestMod.js

const TestMod = {
  async doSomething() {    
  }
};

module.exports = TestMod;

现在我收到编译错误:

[1] ./src/Test.js
[1] 26:6-13 "export 'default' (imported as 'TestMod') was not found in './TestMod'

为什么呢?我知道如何让它再次发挥作用:

TestMod.js

export const TestMod = {
  async doSomething() {    
  }
};

Test.js

import React, { Component } from 'react';
import {TestMod} from './TestMod';

export default class Test extends Component {  
  render() {
    TestMod.doSomething();
    return <div>Testing</div>;
  }
}

但是我想要理解的是为什么使函数async导致module.exports在React端中断。 (顺便说一下,它在Node.js方面仍然可以正常工作)。

谢谢, 阿尔瓦罗

0 个答案:

没有答案