【发布时间】:2017-09-27 18:30:04
【问题描述】:
我试图在我的 MERN 堆栈应用程序上使用 React Router 时遇到了问题,因为所有路由都在渲染相同的组件
路由器(index.jsx):
import React from 'react'
import ReactDOM from 'react-dom'
import { Router, Route, IndexRoute, hashHistory } from 'react-router'
import Home from './components/home.jsx'
import App from './app.jsx'
import ContactsIndex from './components/contacts/contactsIndex.jsx'
if(typeof window !== 'undefined') {
ReactDOM.render(
<Router history={hashHistory}>
<Route path='/' component={App}>
<IndexRoute component={Home} />
<Route path='contacts' component={ContactsIndex}/>
</Route>
</Router>, document.getElementById("root"));
}
App.jsx
import React from 'react'
import { Router, Route, Link } from 'react-router'
import Home from './components/home.jsx'
export default class App extends React.Component {
constructor(props) {
super(props)
}
render() {
return(
<div>
<p>Text</p>
{this.props.children}
</div>
)
}
}
从 express 进入 React:
app.set('views', __dirname + '/views');
app.engine('jsx', require('express-react-views').createEngine())
app.set('view engine', 'jsx')
app.get('*', (req,res) => {
res.render('index.jsx')
})
无论我访问什么路线(即使是未定义的路线),都会呈现 App.jsx 的内容。似乎我在这里做错了事情,这使得 hashHistory 不起作用。我正在使用 React-Router 2.6.1
【问题讨论】:
标签: node.js reactjs express react-router