在我的index.js
文件中:
import React from 'react';
import {BrowserRouter as Router, Route, Link} from 'react-router-dom';
import App from './App';
import Contact from './Contact';
import ReactDOM from 'react-dom';
//import RouterMapping from './RouterMapping';
const RouterMapping = () => (
<Router>
<Route exact path='/' component={App} />
<Route path='/contact' component={Contact} />
</Router>
);
ReactDOM.render(
<RouterMapping />,
document.getElementById('root')
);
渲染页面/
时,它不显示任何内容(根据我的理解,应该转到App
组件。如果我替换,App
组件本身正常运行:
ReactDOM.render(
<RouterMapping />,
document.getElementById('root')
);
到
ReactDOM.render(
<App />,
document.getElementById('root')
);
我做了一些根本错误的事吗?新手反应......
3月16日更新
我想我想出了如何使路由器工作。
我已将RouterMapping
重构为RoutingConfig
,如下所示:
import React from 'react';
import {
BrowserRouter as Router,
Route,
Link
} from 'react-router-dom';
import Home from './Home';
import Contact from './Contact';
const RoutingConfig = () => (
<Router>
<div>
<Route exact path="/" component={Home}/>
<Route path="/contact" component={Contact}/>
</div>
</Router>
);
export default RoutingConfig;
没什么特别的。
现在,我仍然在我的RoutingConfig
中呈现index.js
组件,而不是在App
中呈现index.js
:
ReactDOM.render(
<App />,
document.getElementById('root')
);
路由映射现在在App.js
:
class App extends Component {
render() {
return (
<RoutingConfig />
);
}
}
现在它有效。请参阅随附的屏幕截图:
我的解释
我认为这里的关键是将RoutingConfig
降级为App.js
。从index.js
呈现App.js
开始,App.js
将充当整个应用的入口点,并根据路由确定要加载的组件(Home
,Contact
) 。
以上是您的信息,希望它有所帮助。