2016-10-02 153 views
0

我剛剛更新了我的反應路由器並對最新版本作出反應。現在我的項目不斷給我一個錯誤的瀏覽器說,「未捕獲的TypeError:無法讀取未定義的屬性'路線'」。更新反應路由器後反應路由器未捕獲類型錯誤

我該怎麼做才能解決這個錯誤。這裏是我的package.json和webpack文件。

//的package.json

{ 
    "name": "fishery-logistics", 
    "version": "0.0.1", 
    "description": "Fishery Logistics Weigh-in web application", 
    "main": "app-server.js", 
    "dependencies": { 
    "babel-core": "^5.8.38", 
    "babel-loader": "^5.4.2", 
    "bootstrap": "^3.3.7", 
    "express": "^4.14.0", 
    "fixed-data-table": "^0.6.3", 
    "moment": "^2.15.1", 
    "mysql": "^2.11.1", 
    "react": "^15.3.2", 
    "react-d3": "^0.4.0", 
    "react-dom": "^15.3.2", 
    "react-router": "^2.8.1", 
    "react-router-bootstrap": "^0.23.1", 
    "socket.io": "^1.4.8", 
    "socket.io-client": "^1.4.8", 
    "underscore": "^1.8.3", 
    "webpack": "^1.13.2" 
    }, 
    "devDependencies": {}, 
    "scripts": { 
    "prestart": "webpack", 
    "start": "node app-server.js" 
    }, 
    "author": "Shashika Amunawatta", 
    "license": "MIT" 
} 

//的WebPack

module.exports = { 
// Root client js file 
entry: "./app-client.js", 
// Where to put the processed file 
output: { 
    filename: "public/bundle.js" 
}, 
module: { 
    loaders: [{ 
     // When the webpack is run, babel will not run on these files 
     exclude: /(node_modules|app-server.js)/, 
     // Loader name 
     loader: 'babel' 
    }] 
} 
} 

這是路由器處理的部分。

import React from 'react'; 
import { Router, Route, Link, IndexRoute, browserHistory } from 'react-router'; 

import App from './components/app'; 
import Main from './components/main'; 
import CreateOrganization from './components/create-organization'; 
import ManageUsers from './components/manage-users'; 
import FldList from './components/fld-list'; 
import FldView from './components/fld-view'; 
import WeighIn from './components/weigh-in'; 
import MatchFlds from './components/match-flds'; 
import NotFound from './components/not-found'; 

const routes = (
    <Router history={browserHistory}> 
     <Route path="/" component={App}> 
      <IndexRoute component={Main} /> 
      <Route path="create-organization" component={CreateOrganization} /> 
      <Route path="manage-users" component={ManageUsers} /> 
      <Route path="fld-list" component={FldList} /> 
      <Route path="fld-view/:fldId" component={FldView} /> 
      <Route path="weigh-in" component={WeighIn} /> 
      <Route path="match-flds" component={MatchFlds} /> 
      <Route path="**" component={NotFound} /> 
     </Route> 
    </Router> 
); 

Router.run(routes, function (Handler) { 
    React.render(<Handler />, document.getElementById('react-container')); 
}); 
+1

向我們顯示導入「Route」組件的代碼。 –

+0

看起來不錯。堆棧跟蹤指向哪一行? –

+0

錯誤顯示「Uncaught TypeError:無法讀取屬性'路由'的未定義」..它與反應0.13一起工作。現在我更新到15.2後,會出現錯誤。 – Shashika

回答

0

您需要使用ReactDOM.render()。從v0.14開始,反應已將庫分成ReactDOM和React。這就是你在當前版本中錯誤的原因。

Router.run(routes, function (Handler) { 
    ReactDOM.render(<Handler />, document.getElementById('react-container')); 
});