javascript - 如果用作类扩展器,则重新导出 es6 类模块不起作用
问题描述
我有5个js文件,
我已经使用名称导出了一个新组件,bar.js
然后使用相同的NewComponent
名称route.js
重新导出NewComponent
,other.js
NewComponent
工作正常,但 indummy.js
NewComponent
未定义,而如果直接从导入bar.js
NewComponent
可以正常运行(请参阅sample.js
),我犯了错误吗?
/* bar.js */
import { Component } from 'react'
export default class NewComponent extends Component { }
/* route.js */
export { default as NewComponent } from './bar'
/* other.js */
import { NewComponent } from './route'
export default class Other extends Component {
render() {
return (
<NewComponent /> /* work */
)
}
}
/* dummy.js */
import { NewComponent } from './route'
export default class Dummy extends NewComponent { } /* undefined is not an object (evaluating '_bar.default') */
/* sample.js */
import NewComponent from './bar'
export default class Sample extends NewComponent { } /* work */
- 更新这里是我的示例代码 https://codesandbox.io/s/km5n6o757v
解决方案
你需要像这样导入(没有花括号{...}
)
/* dummy.js */
import NewComponent from './route'; // this is import Other component
看到other.js
您正在导出Other
为默认组件并NewComponent
在内部使用组件Other
,而不是像您在route.js
在此处阅读有关默认导入与命名导入的更多信息https://medium.com/@etherealm/named-export-vs-default-export-in-es6-affb483a0910
推荐阅读
- jquery - 基于jQuery中动态添加的类更改点击事件延迟
- html - 如何增加一颗行星?html5 css3 动画
- python - Python:冒泡排序的列表索引超出范围
- eclipse-plugin - 以编程方式从打开的 xtext 编辑器访问完成建议
- javascript - Testcomplete Javascript - 打印 SQL 查询的输出
- sql - 使用子查询来连接两个表中的列
- git - 无法将存储库 Bitbucket 与 Jenkins 连接
- qgraphicsview - QRect 与 QRectF 的右下位置
- javascript - 如何在 Vuetify 文本输入字段中输入日期和时间
- angular - 允许用户在 Angular 8 应用程序中调整窗口大小?