【问题标题】:Getting error when trying to import formsy-react. Cannot read property 'React' of undefined尝试导入 formsy-react 时出错。无法读取未定义的属性“反应”
【发布时间】:2016-07-26 20:41:41
【问题描述】:

注意:我创建了一个 git repo,以便可以复制问题 https://github.com/giovannicode/formsy-import-test

我正在尝试将 formsy-react 库用于 react js 项目。

但是我在导入文件时遇到了问题。我是 webpack 和 ES6 的新手,所以我不确定我是否遗漏了一些重要的东西。 这是我的 .babelrc 文件:

{
"presets": [
"es2015", "react"
 ]
}

这是我的 webpack.config.js 文件:

var path = require("path");

module.exports = {
  resolve: {
    extensions: ['', '.js', '.jsx'],
  },
  //externals: 'react',
  entry: {
    'app': './app.jsx',
  },
  output: {
    path: __dirname,
    filename: "[name].js"
  },
  module: {
    loaders: [
      {
        test: /\.jsx$/,
        include: __dirname,
        loader: "babel-loader"
      },
    ]
  }
}

这是我的 app.jsx 文件:

import React from 'react';  
import ReactDOM from 'react-dom';

import {Formsy} from 'formsy-react';

var CommentBox = React.createClass({
  render: function() {
    return (
      <div className="commentBox">
        Hello, world! I am a CommentBox.
      </div>
    );
  }
});

ReactDOM.render(
  <CommentBox />,
  document.getElementById('react-content')
);

如果我注释掉 formsy-react 导入,该应用程序将正常工作。 但是当我添加导入时,我得到 浏览器中的以下错误

Uncaught TypeError: Cannot read property 'React' of undefined

应用程序将通过 webpack 无错误地编译,但我不确定发生了什么。

注意:我创建了一个 git repo,以便可以复制问题 https://github.com/giovannicode/formsy-import-test

【问题讨论】:

    标签: reactjs webpack babeljs formsy-react


    【解决方案1】:

    您正在尝试以两种方式导入依赖项,

    从 ES6 导入模块和

    import Formsy from 'forms-react'

    并使用 require 加载模块

    var React = require('react');

    看你的代码你可能想使用 ES6 语法

    import React from 'react'
    import Formsy from 'forms-react'
    

    【讨论】:

    • 嘿亚历杭德罗感谢您的回复。我尝试了你的建议,但我仍然遇到同样的错误。我也尝试过使用var x= require(''x") 语法,但我仍然遇到同样的错误。
    • 好的,首先我认为你已经通过 NPM 安装了 React 依赖项,为了使用 webpack,你需要一个入口点,一个通常称为“index.js”的文件。所以在你的entry {}对象中你应该引用index.js(入口点)例如:entry: { './app/index.js' }你可以有很多入口点,但要确保你有数组语法entry: [ 'file ', ' anotherFile' ]。 // webpack的入口文件import React from 'react' import ReactDOM from 'react-dom' import routes from './config/routes' ReactDOM.render( routes, document.getElementById('app') )
    • 如果你正在学习它的真棒facebook.github.io/react/blog/2016/07/22/…,你也可以在没有配置的情况下创建 React 应用程序
    • 嘿亚历杭德罗感谢您的帮助。我没有任何运气让应用程序运行,但我创建了一个测试存储库来复制我的问题。希望这将帮助某人更好地理解我的问题。 github.com/giovannicode/formsy-import-test
    猜你喜欢
    • 2021-08-16
    • 1970-01-01
    • 1970-01-01
    • 2020-08-04
    • 2022-07-26
    • 2021-10-03
    • 2022-12-05
    • 2022-10-08
    • 1970-01-01
    相关资源
    最近更新 更多