web-dev-qa-db-ja.com

React JSXファイルで「未定義のプロパティ 'createElement'を読み取れません」というエラーが表示される

npm testで実行しているtest_stuff.jsファイルがあります

ほとんど次のようになります。

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であり、それが意味するものは何でも...

69
Some Guy

インポートするReact do import React from 'react'インポートするものがそのモジュールまたはファイルのデフォルトのエクスポートではない場合、括弧を追加します。反応する場合は、デフォルトのエクスポートです。

これは、定義方法に応じて他のインポートに適用される場合があります。

127
Kafo
import React, { Component } from 'react'

これは私のために働いた。しかし、なぜこの問題の私のバージョンを修正したのか分かりません。あなたがこの問題につまずいた人であり、あなたが開始ボイラープレートとしてcreate-react-appを使用している場合、Reactをインポートするこの方法はトリックを行います。 (18年10月現在、笑)

17
TJ Allen

TypeScriptでReactJSを使用している人向け。

import * as React from 'react';
7
Khuong