weixin_39653361
2020-11-29 04:15 阅读 56

Uncaught ReferenceError: React is not defined

你好,我采用你源码的方式: import { Component, PropTypes } from 'react'; class Input extends Component { }

运行会报错:Uncaught ReferenceError: React is not defined

必须修改成: import React , { Component, PropTypes } from 'react';

请问是什么原因呢?

是缺少什么Loader吗?

该提问来源于开源项目:Lobos/react-ui

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

8条回答 默认 最新

  • weixin_39682511 weixin_39682511 2020-11-29 04:15

    你的代码里面应该使用了React下面的东西吧

    点赞 评论 复制链接分享
  • weixin_39957271 weixin_39957271 2020-11-29 04:15

    猴年快乐,这个问题我写testcase也遇到了,如果webpack配置中,React不作为外部对象导入的话,好像就会有这个问题,因为我在test文件夹的index.html中把cdn替换成本地的React(想着能快点),碰巧遇见了这个问题,好像是babel转码的问题吧。

    点赞 评论 复制链接分享
  • weixin_39682511 weixin_39682511 2020-11-29 04:15

    原来是因为没配置webpack的externals,我的理解是这样的,如果不配置的话,webpack生成的代码是没有把 window.React 链接到import 的 'react' 对象的,所以就not define了

    点赞 评论 复制链接分享
  • weixin_39957271 weixin_39957271 2020-11-29 04:15

    应该是这样吧,那在不想设置external的情况下,那这种情况怎么解决呢? 我昨天遇到的问题其实是这样的,我使用了一个第三方的react测试库,它依赖react/lib,所以会把本地的react也加载入testBundle中,然后index.html又会有从cdn导入的react,这样就有两个React实例了,会出问题,后来就想干脆不用external,直接用本地的react,之后就遇到这个问题了。

    点赞 评论 复制链接分享
  • weixin_39682511 weixin_39682511 2020-11-29 04:15

    把cdn导入的那个去掉呢

    点赞 评论 复制链接分享
  • weixin_39957271 weixin_39957271 2020-11-29 04:15

    去掉cdn的话,也会提示not define, 不过和这个not define应该不一样。我昨天也尝试能不能解决,最终在把源码改成这样

    
    import React , { Component, PropTypes } from 'react';
    

    就好用了

    点赞 评论 复制链接分享
  • weixin_39682511 weixin_39682511 2020-11-29 04:15

    0.6.1 发布的版本源码编译为es5了

    点赞 评论 复制链接分享
  • weixin_39682511 weixin_39682511 2020-11-29 04:15

    需要这个插件 babel-plugin-react-require

    点赞 评论 复制链接分享

相关推荐