gpt4 book ai didi

javascript - react-route,react-hot-loader.webpack(你不能改变;它会被忽略)

转载 作者:可可西里 更新时间:2023-11-01 01:52:25 25 4
gpt4 key购买 nike

这是我第一个使用react,react-router,react-hot-loader,webpack-dev-server的项目webpack。当我更改react组件中的代码时,热加载器生效,但同时控制台警告我:

You cannot change 《Router routes》; it will be ignored.

我不知道如何解决这个问题。有代码:

网络包代码:

    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'));

谢谢!!!!

最佳答案

你唯一需要做的就是抛出 <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>
);
}
}

关于javascript - react-route,react-hot-loader.webpack(你不能改变<Router routes>;它会被忽略),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34760825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com