reactjs - React 开发工具显示 'Proxy Component' 而不是组件的名称

标签 reactjs webpack webpack-hmr webpack-hot-middleware

我正在使用 Webpack热模块重新加载。我还使用 chrome 扩展 React Developer Tools 在开发时检查 React 树。当我检查页面并查看组件树时,我希望查看实际组件的名称,但是,对于每个组件,名称显示为代理组件

我可以让您了解有关我的 Webpack 的更多细节,但我什至很难在 google 上找到解决此问题的正确方法。

以下是我用于 webpack 的工具:

"webpack": "^1.9.6",
"webpack-dev-middleware": "^1.2.0",
"webpack-dev-server": "^1.14.1",
"webpack-hot-middleware": "^2.0.0"

webpack.config.js

var path = require('path');
var webpack = require('webpack');

module.exports = {
  devtool: 'eval',
  entry: [
    'webpack-hot-middleware/client',
    './client/index'
  ],
  output: {
    path: path.join(__dirname, 'static'),
    filename: 'bundle.js',
    publicPath: '/static/'
  },
  plugins: [
    new webpack.HotModuleReplacementPlugin(),
    new webpack.NoErrorsPlugin()
  ],
  module: {
    loaders: [
      {
        test: /\.json$/,
        loader: 'json'
      },
      {
        test: /\.js$/,
        loader: 'babel-loader',
        include: path.join(__dirname, 'client'),
        query: {
          plugins: ['transform-runtime'],
          presets: ['es2015', 'stage-0', 'react', 'react-hmre']
        }
      },
      {
        test: /\.scss$/,
        loaders: ['style', 'css', 'sass']
      }
    ]
  }
};

最佳答案

我认为这是因为您应该将节点环境变量设置为“生产”。在生产模式下,React 会重命名您的组件,并且它们在 React 开发者工具中显示为 ProxyComponent。

编辑

您的问题在于热模块替换和 React Transform。正如Dan Abramov所述他本人表示,当使用 React 热重载时,组件需要被代理,并且被代理组件的显示名称源自组件的 displayName 。这就是为什么当您添加显式 displayName 时它会起作用,如果不这样做,React devtools 将回退到 ProxyComponent 模块的名称:ProxyComponent .

关于reactjs - React 开发工具显示 'Proxy Component' 而不是组件的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37515902/

相关文章:

node.js - 如何在webpack中使用child_process

angular - @ngtools\webpack AOT 不工作或卡住在 95% emitting

webpack - 为 ElectronJS + Vue 配置热模块重载

javascript - nginx反向代理后面的create-react-app代码更改未在浏览器中重新加载

javascript - 如何在chartJS中绘制最小值和最大值与平均值之间的线?

reactjs - 隐藏组件后如何拆除?

javascript - foo.join 和 foo.resolve 之间的区别?在网页包中

angular - HMR 没有使用 Angular CLI 更新 View

reactjs - props.history.push ('/' ) 没有转到页面顶部(需要功能组件)

reactjs - 如何在 Formik 提交验证之前清除状态?