我正在尝试使用MERN堆栈在应用程序中设置React Router,并且收到错误的“无法获取属性”位置“未定义”。
下面是我在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')
})
这是index.jsx文件:
if(typeof window !== 'undefined') {
ReactDOM.render(<App />, document.getElementById("root"));
}
这是App组件。
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'
const AppRouter = () => {
return (
<Router history={hashHistory}>
<Route path='/' component={App}>
</Route>
</Router>
)
}
export default AppRouter
我见过其他有此问题的人在定义路由器时没有包含历史记录属性。我有历史,所以似乎还有其他事情发生。有什么想法吗?