2016-05-21 10 views
17

私のステートレス機能コンポーネントをクラスにリファクタリングする必要がありました。私がそれをしたとき、私はReact自体が未定義であるように見えるところでエラーを得続けます。Uncaught TypeError:未定義(...)のプロパティ 'createElement'を読み取ることができません

import { React, Component } from 'react'; 
import { Cell } from 'fixed-data-table'; 

class DataCell extends Component { 

    onCellClicked() { 
    this.props.onMessageClicked(this.props.data[this.props.rowIndex].Id); 
    } 

    render() { 
    const {rowIndex, columnKey, data, ...props} = this.props; 
    return (
     <Cell {...props} onClick={onCellClicked}> 
     {data[rowIndex][columnKey]} 
     </Cell> 
    ); 
    } 
} 

export default DataCell; 

bundle.js:43248 Uncaught (in promise) TypeError: Cannot read property 'createElement' of undefined(…)

import React from 'react'; 
import { Cell } from 'fixed-data-table'; 

const DataCell = ({rowIndex, columnKey, data, onMessageClicked, ...props}) => { 
    return (
    <Cell {...props} onClick={onMessageClicked(data[rowIndex].Id)}> 
     {data[rowIndex][columnKey]} 
    </Cell> 
); 
}; 

export default DataCell; 

と私はそのラインに行くとき、私は、私はそれを得ることはありません

return _react.React.createElement(

を参照してください。これをデバッグ/修正するにはどうすればよいですか?

私が掲載しているコードが何とか関連していない場合は、このアプリケーションの完全なコードはhereです。

ありがとうございます!

答えて

71

ああ...

import { React, Component } from 'react';

ニーズ

import React, { Component } from 'react';

されるように:)

+4

便利な、今日、それは、ヘッド難問のビットでした。ありがとう! – Mtz

14

OPはので、ここでの質問、それ自身に答えが、理由もなくしています理由! {直接https://github.com/facebook/react/issues/2607#issuecomment-225911048から引用 "}

import { React, Component } from 'react'; 

が間違っている、あるべき

import React, { Component } from 'react'; 

が反応という名前の名前の輸出がありません。反応するのでそれは混乱しているCommonJSモジュールであり、あなたがしているのでBabelはセマンティクスをマップしようとしますが、正確には一致しません。{Component}は実際にコンポーネントをReact自体から取得します。を使用し、混乱が少ない場合は代わりにReact.Componentを使用してください。活字体で私にとって

+1

これは正しい答えです! –

3

ソリューションました:それでも

import * as React from 'react'; 
+0

私はTypescript 2.1.5のバージョンを使用しており、これは私に役立ちます。 ** tsconfig.json **に問題があると思います。たぶん 'types:['node']'も役に立ちます。 –

関連する問題