问题:
webpack 能够正常打包 react 项目, 但是在 Chrome 调试器中报错如下
Uncaught ReferenceError: React is not defined
原因:
使用了 es6 的 import 关键字声明的变量, 没有将变量挂载到 Windows 上.
es5 中只有 var 和 function 会声明变量而且默认是全局对象的属性, 只有全局作用域和函数作用域. 也就是 Node.JS 中 global 的属性, 浏览器中 Windows 的属性, 这就带来了一些问题, 全局污染, 当一个程序里有好多同名变量的时候后面的覆盖前面的.
为了解决这种问题或者其他原因, es6 引入了 const,import,class,let 等关键字, 它们是块作用域, 这些关键字声明出来的不会做全局变量的属性, 也就是说不会做 global 或者 Windows 的属性.
解决方法:
使用 es5 的声明变量方式
var React = require("react");
本文来自 React 答疑 https://www.html.cn/qa/react/ 栏目, 欢迎学习!
来源: http://www.css88.com/qa/react/16078.html