React JSX 文件给出错误 "Cannot read property 'createElement' of undefined"
React JSX file giving error "Cannot read property 'createElement' of undefined"
我有一个文件 test_stuff.js 我是 运行 npm test
它看起来像这样:
import { assert } from 'assert';
import { MyProvider } from '../src/index';
import { React } from 'react';
const myProvider = (
<MyProvider>
</MyProvider>
);
describe('Array', function() {
describe('#indexOf()', function() {
it('should return -1 when the value is not present', function() {
assert.equal(-1, [1,2,3].indexOf(4));
});
});
});
不幸的是,我得到了错误
/Users/me/projects/myproj/test/test_stuff.js:11
var myProvider = _react.React.createElement(_index.MyProvider, null);
^
TypeError: Cannot read property 'createElement' of undefined
at Object.<anonymous> (/Users/me/projects/myproj/test/test_stuff.js:7:7)
这是什么意思?我正在从 'react' 成功导入 React,那么为什么 React 会未定义?它是 _react.React,不管是什么意思...
要导入 React,请执行 import React from 'react'
当您导入的内容不是该模块或文件中的默认导出时,您可以添加括号。在反应的情况下,它是默认导出。
这可能适用于您的其他导入,具体取决于您如何定义它们。
import React, { Component } from 'react'
这对我有用。不过,我不确定为什么它解决了我对这个问题的看法。所以如果你是偶然发现这个问题的人并且你使用 create-react-app 作为你的起始样板,那么这种导入 React 的方式就可以解决问题。 (截至 18 年 10 月,哈哈)
对于使用 TypeScript 使用 ReactJS 的人。
import * as React from 'react';
变化:
从 'react' 导入 { React } 到 从 'react' 导入 React
因为 React 是默认导出,所以任何默认导出都不需要花括号。
如果您需要从 'react' 导入多个 类,您可以为它们取一个别名,React 除外。像,
import React, * as react from 'react';
这个错误是我粗心造成的。其实是
import React from 'react';
括号用于命名导出,例如:
import React, { useState, useEffect } from 'react';
React
在该模块中默认导出,不需要 {}。
尝试使用析构函数导入 React 对象可能会导致您遇到这样的问题 import {React} from 'react';
。
这可能是 90% 的错误的原因 运行 上述代码。
而是使用:
import React from 'react';
然后您可以通过以下方式访问 React class 的任何成员:
反应。
这个错误可能是由于粗心造成的。请加
import React from 'react'
之后会解决
从react导入React时出现这个问题,我把它放在大括号里了。
请这样做:
import React, {useState} from "react";
而不是:
import {React, useState} from "react";
我有一个文件 test_stuff.js 我是 运行 npm test
它看起来像这样:
import { assert } from 'assert';
import { MyProvider } from '../src/index';
import { React } from 'react';
const myProvider = (
<MyProvider>
</MyProvider>
);
describe('Array', function() {
describe('#indexOf()', function() {
it('should return -1 when the value is not present', function() {
assert.equal(-1, [1,2,3].indexOf(4));
});
});
});
不幸的是,我得到了错误
/Users/me/projects/myproj/test/test_stuff.js:11
var myProvider = _react.React.createElement(_index.MyProvider, null);
^
TypeError: Cannot read property 'createElement' of undefined
at Object.<anonymous> (/Users/me/projects/myproj/test/test_stuff.js:7:7)
这是什么意思?我正在从 'react' 成功导入 React,那么为什么 React 会未定义?它是 _react.React,不管是什么意思...
要导入 React,请执行 import React from 'react'
当您导入的内容不是该模块或文件中的默认导出时,您可以添加括号。在反应的情况下,它是默认导出。
这可能适用于您的其他导入,具体取决于您如何定义它们。
import React, { Component } from 'react'
这对我有用。不过,我不确定为什么它解决了我对这个问题的看法。所以如果你是偶然发现这个问题的人并且你使用 create-react-app 作为你的起始样板,那么这种导入 React 的方式就可以解决问题。 (截至 18 年 10 月,哈哈)
对于使用 TypeScript 使用 ReactJS 的人。
import * as React from 'react';
变化: 从 'react' 导入 { React } 到 从 'react' 导入 React 因为 React 是默认导出,所以任何默认导出都不需要花括号。
如果您需要从 'react' 导入多个 类,您可以为它们取一个别名,React 除外。像,
import React, * as react from 'react';
这个错误是我粗心造成的。其实是
import React from 'react';
括号用于命名导出,例如:
import React, { useState, useEffect } from 'react';
React
在该模块中默认导出,不需要 {}。
尝试使用析构函数导入 React 对象可能会导致您遇到这样的问题 import {React} from 'react';
。
这可能是 90% 的错误的原因 运行 上述代码。
而是使用:
import React from 'react';
然后您可以通过以下方式访问 React class 的任何成员: 反应。
这个错误可能是由于粗心造成的。请加
import React from 'react'
之后会解决
从react导入React时出现这个问题,我把它放在大括号里了。
请这样做:
import React, {useState} from "react";
而不是:
import {React, useState} from "react";