React JSX 文件出现错误“无法读取未定义的属性 'createElement'”

2022-08-30 04:22:46

我有一个正在运行的文件test_stuff.jsnpm 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,无论这意味着什么...


答案 1

要导入 React do,当您导入的内容不是该模块或文件中的默认导出时,请添加括号。在反应的情况下,它是默认的导出。import React from 'react'

这可能适用于您的其他导入,具体取决于您如何定义它们。


答案 2
import React, { Component } from 'react'

这对我有用。不过,我不确定为什么它解决了我的此问题版本。因此,如果你是偶然发现这个问题的人,并且你使用create-react-app作为你的起始样板,那么这种导入React的方式就可以了。(截至18年10月,哈哈)