我有5个js文件,
我从bar.js
导出了一个名称为NewComponent
的新组件
然后在route.js
上重新导出同名NewComponent
,
在other.js
NewComponent
上工作正常,
但在dummy.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 */
答案 0 :(得分:0)
您需要以这种方式导入({...}
周围没有花括号)
/* 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
上了解有关默认导入与命名导入的更多信息