【发布时间】:2016-04-18 01:56:55
【问题描述】:
这是我第一个使用 react,react-router,react-hot-loader,webpack-dev-server 和 webpack 的项目。当我更改 react 组件中的代码时,热加载器生效,但同时控制台告诉我一个警告:
你不能改变《Router routes》;它将被忽略。
我不知道如何解决这个问题。有代码:
webpack 代码:
var path = require('path');
var webpack = require('webpack');
module.exports = {
devtool: 'source-map' ,
entry: [
'webpack-dev-server/client?http://localhost:3000',
'webpack/hot/only-dev-server',
'./jsx/index'
],
output: {
path: path.join(__dirname, 'public'),
filename: 'bundle.js',
publicPath: '/public/'
},
plugins: [
new webpack.HotModuleReplacementPlugin(),
new webpack.NoErrorsPlugin()
],
resolve: {
extensions: ['', '.js', '.jsx', 'json']
},
module: {
loaders: [{
test: /\.js$/,
exclude: /node_modules/,
loaders: ['react-hot', 'babel'],
}]
},
watch:true
};
索引代码:
import React from 'react'
import ReactDOM from 'react-dom'
import { Router, Route, Link } from 'react-router'
import App from './index/app'
import About from './index/about'
import Inbox from './index/inbox'
class Routers extends React.Component {
render() {
return (
<Router>
<Route path="/" component={App}>
<Route path="about" component={About} />
<Route path="inbox" component={Inbox} />
</Route>
</Router>
);
}
}
ReactDOM.render(<Routers />, document.getElementById('root'));
谢谢你!!!!
【问题讨论】:
-
看看github.com/rackt/react-router/issues/2704...很多人提出了这个问题,您可以根据那里的建议尝试一些事情
-
尝试在常量中定义路由,看看它是否有效。我在我的项目中使用了类似的设置,但我没有看到此错误消息。
-
@AbhishekJain.thank for your answer,我一直在关注 github.com/rackt/react-router/issues/2704。但我无法从中找到解决方案。我不知道如果警告会对我的项目产生影响,即使 react-router 和 hot-loader 很有用。
-
@AbhishekJain。哦,我的上帝。我昨天已经在常量中定义了路线,也许我写错了,它没有用。但是刚才,我再次使用这种方式,它很有效。非常感谢 !啊……
-
酷...乐于助人!!
标签: javascript reactjs webpack webpack-dev-server react-hot-loader