Kev*_*n_Z 13 javascript reactjs webpack webpack-dev-server react-hot-loader
它是用我的第一个项目react
,react-router
,react-hot-loader
,webpack-dev-server
和webpack
.当我更改react组件中的代码时,热加载器变得有效,但同时,控制台告诉我一个警告:
你不能改变"路由器路由"; 它会被忽略.
我不知道如何解决这个问题.有代码:
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
};
Run Code Online (Sandbox Code Playgroud)
索引代码:
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'));
Run Code Online (Sandbox Code Playgroud)
谢谢 !!!!
小智 10
只有你需要做的事情,就是抛弃<Route />
render()方法.
因此,有很多方法可以解决这个问题.
最官方的方式是@Stormy说的.
我这样的解决方案:
const routes = (
<Route path="/" component={App}>
<Route path="about" component={About} />
<Route path="inbox" component={Inbox} />
</Route>
)
// Don't let <Route> in render() method
class Routers extends React.Component {
render() {
return (
<Router>
{ routes }
</Router>
);
}
}
Run Code Online (Sandbox Code Playgroud)
小智 1
尝试使用此配置 https://github.com/reactjs/react-router/issues/2704#issuecomment-170940448
const routeConfig = [
{ path: '/:locale',
component: App,
indexRoute: { component: NewsCardsContainer },
...
}
];
return (
<IntlProvider key="intl" {...intlData}>
<Router history={history} routes={routeConfig} />
</IntlProvider>
)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5301 次 |
最近记录: |