javascript - 只有 ReactOwner 可以有 refs。您可能正在向不是在组件的 render 方法中创建的组件添加 ref

标签 javascript reactjs webpack bundling-and-minification npm-install

我已经编写了一个独立的组件,如果我将此组件作为独立组件运行,它可以正常工作。我想将此组件作为 NPM 模块发布,以便我可以共享此组件。在我的示例应用程序中,我在我的 package.json 中定义了模块的路径,并且它被 NPM 正常拉下。我正在使用 webpack 进行捆绑,它成功地构建了包,但是当我在浏览器中运行代码时,我得到了

Uncaught Invariant Violation: addComponentAsRefTo(...): Only a ReactOwner can have refs. You might be adding a ref to a component that was not created inside a component's render method, or you have multiple copies of React loaded

我花了一整天的时间尝试了一些 hack,但我无法找到问题的确切根源?

最佳答案

在您的 webpack 配置中,在外部配置中使用它,例如:

output: {
    path: __dirname + "/dist",
    filename: 'bundle.js',
    // library: 'hello-007',
    libraryTarget: 'umd',
  },
  externals: [{
    'react': {
      root: 'React',
      commonjs2: 'react',
      commonjs: 'react',
      amd: 'react'
    }
  }, {
    'react-dom': {
      root: 'ReactDOM',
      commonjs2: 'react-dom',
      commonjs: 'react-dom',
      amd: 'react-dom'
    }
  }],   
   module : {
    loaders : [
      {
        test : /\.js?/,
        loader : 'babel'
      }
    ]
  },

关于javascript - 只有 ReactOwner 可以有 refs。您可能正在向不是在组件的 render 方法中创建的组件添加 ref,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38053561/

相关文章:

javascript - Angularjs:如何拦截外部 url $resource 或 $http 服务中的错误?

javascript - 有没有更好的方法在没有输入框的情况下进行输入后进行页面重定向?

reactjs - 减少 React 表重新渲染

reactjs - 如何从容器中的存储获取状态?

javascript - angularjs SEO 友好的 url 不起作用

javascript - AngularJS Angular 种子启动项目添加指令

javascript - 消除不同mapStateToProps之间的冗余

javascript - __non_webpack_require__ 未定义

javascript - Webpack 提取文本插件输出 .js 和 .css 文件用于样式条目

css - webpack中如何处理base64图片?