【发布时间】:2019-10-26 00:35:25
【问题描述】:
尝试通过将导入的项目转换为节点模块从我的另一个项目中导入组件时,该组件显示为未定义。 这个组件使用了自己定义的 React-Router-Dom:
<Link to=""> <Link />
该组件随后被导入到具有自己的路由器的父项目中,但是在编译时,发现该组件未定义。
可能是什么问题导致了这种情况?
尝试:
从组件中移除所有 react-router-dom 导入,并将组件导出为纯 html 文件,从而成功导出组件。
从导出的组件中删除了路由器,只留下了 Link 包装器。
- 不再需要历史道具
导出的组件:
export default function ExampleWrapper({ history }) {
return (
<div>
<Router>
<div>
<Link to="/example">
<button>Example</button>
</Link>
<Link to="/secondExample">
<button>secondExample</button>
</Link>
</div>
<Fragment >
<Switch >
<Route path="/example" exact component={Example} />
<Route path="/secondExample" exact component={SecondExample} />
</Switch>
</Fragment>
</Router>
</div>
在模块索引中暴露导入的索引:
export default Example;
export { SecondExample, ThirdExample, ExampleWrapper};
使用节点模块导出的组件:
import { ExampleWrapper } from 'create-react-library';
function App() {
return (
<div className="App">
<ExampleWrapper history={history} />
<Router history={history}>
<Navbar />
<header className="App-header">
<div className="columns is-marginless">
<Fragment>
<Switch>
<Route path="/admin/home" exact component={Home} />
</Switch>
</Fragment>
</div>
</header>
</Router>
</div>
);
}
错误代码:
Cannot read property 'dispose' of undefined
./node_modules/react-dev-utils/webpackHotDevClient.js
C:/Users/userName/DEV/concepts/admin-ui/node_modules/react-dev-utils/webpackHotDevClient.js:45
【问题讨论】:
标签: reactjs npm react-router create-react-app