内联导入导出组件在热重新加载时引发错误

时间:2019-02-15 12:22:56

标签: javascript reactjs react-native hot-module-replacement hot-reload

关于上下文,让我尝试解释一下。

在我的项目中,例如,有一个用于组件的文件夹。 在该文件夹中,我有我的组件文件,以及一个index.js文件,在其中导入所有组件并导出,而不是在同一行中,如下所示:

export { default as Button } from './button'
export { default as Loader } from './loader'
export { default as ImageBackground } from './image-background'

因此,我可以像这样将这些组件导入“屏幕组件”中:

import { Button, Loader, ImageBackground } from 'src/components'

如果我编辑组件文件,保存并重新加载项目,一切正常。

问题是,当我在激活“热模块更换(热重装)”的情况下编辑这些组件中的任何一个时,在编辑后触发它时,它会引发以下错误

  

未处理的JS异常:需要模块“ src / components / index.js”,该模块引发了异常:TypeError:无法重新定义属性:Button

有人知道为什么会这样吗?

谢谢!

obs:在不使用index.js的情况下直接导入组件时,或者在index.js内时,首先导入组件,然后将组件分配给变量,然后导出该变量,工作正常。

1 个答案:

答案 0 :(得分:0)

当我将React组件中的render = () => (...)更改为render(){ return (...)}时,我的问题得到解决