React App编译,但控制台中的错误



我刚刚开始使用webpack构建一个react.js应用,而代码正常,我得到:

Uncaught TypeError: Cannot read property 'array' of undefined
at Object.<anonymous> (RoutingContext.js:28)

在浏览器控制台中。我什至不知道从哪里开始这个问题。

RoutingContext在React-Router自己的代码中,而不是我的代码,特别是此部分:

var _React$PropTypes = _react2['default'].PropTypes;
var array = _React$PropTypes.array;
var func = _React$PropTypes.func;
var object = _React$PropTypes.object;

我认为导致问题的代码是:

render((
  <Router history={hashHistory}>
    <Route path="/" component={App}>
      <Route path="adverts" name="adverts" component={Adverts}></Route>
      <Route path="ads" name="ads" component={Adverts}></Route>
    </Route>
  </Router>
), document.getElementById('root'));

webpack配置:

var debug = process.env.NODE_ENV !== "production";
var webpack = require('webpack');
var path = require('path');
module.exports = {
  context: path.join(__dirname, "src"),
  devtool: debug ? "inline-sourcemap" : null,
  entry: ["babel-polyfill", "./index.js"],
  module: {
    rules: [
        { test: /.json$/, loader: 'json-loader' }
      ],
    loaders: [
      {
        test: /.jsx?$/,
        exclude: /(node_modules|bower_components)/,
        loader: 'babel-loader',
        query: {
          presets: ['react', 'es2015', 'stage-0'],
          plugins: ['react-html-attrs', 'transform-class-properties', 'transform-decorators-legacy'],
        }
      },
      {
        test: /.css$/,
        include: /node_modules/,
        loaders: ['style-loader', 'css-loader'],
      }
    ]
  },
  output: {
    path: __dirname + "/src/",
    filename: "index.min.js"
  },
  plugins: debug ? [] : [
    new webpack.IgnorePlugin(/(locale)/, /node_modules.+(momentjs)/),
    new webpack.optimize.DedupePlugin(),
    new webpack.optimize.OccurenceOrderPlugin(),
    new webpack.optimize.UglifyJsPlugin({ mangle: false, sourcemap: false }),
  ],
};

您可能使用旧版本的react-router,在应用程序中使用react 16时,具有对等依赖的依赖性。React 16从主包装中删除了Proptypes,看起来React-Router期望它。更新React-Router。

最新更新