2017-09-22 2 views
1

をレンダリングない私はこのコードを持っているReactDOM.renderが私のメインのファイルでは何も

import phoneReactElement from "../components/phone.js"; 

ReactDOM.render(<phoneReactElement />, document.getElementById('phoneComponentTester')); 

「../components/phone.js」は次のようになります。

import React, { Component } from 'react'; 

class TestComponent extends Component { 

    constructor(props) { 
     super(props); 
    } 
    render() { 
     return (
      <div>IT WORKED</div> 
     ); 
    } 

} 
export default TestComponent; 

それは、その作業のように思えますコンソールにエラーはなく、Google Chromeのツールでその要素を見ることができますが、空であるようです。それは "IT WORKED"を表示していませんが、私はここで何が間違っていますか?

enter image description here

+0

これは私のために働いています:http://plnkr.co/edit/xfThQCIsF3PAc0OA2GTo?p=preview正しい 'phone.js'をインポートしていることを再度確認できますか? –

+0

それをまとめてくれてありがとう、私はコンポーネントをエクスポートしているということが一つの違いだと思う(私はこれを正しくやっていると思う)。 phone.jsが正しいことを確認しました。 –

+0

私はこれを以下に回答しましたが、これはhttps://stackoverflow.com/questions/30373343/reactjs-component-names-must-begin-with-capital-lettersの可能な複製であることに気付きました – djfdev

答えて

1
import phoneReactElement from "../components/phone.js"; 

ニーズもします

import TestComponent from "../components/phone.js"; 

し、それをレンダリングする:

ReactDOM.render(<TestComponent />, document.getElementById('phoneComponentTester')); 
+0

回答をいただきありがとうございますが、私はあなたの修正を試みましたが、何の違いも見られませんでした。私はそのデフォルトのエクスポート以来、それは私がそれを名前を問題にすべきではないと思いますか? –

+0

あなたは正しいですが、一貫性が重要で、小文字のチェックを使ってコンポーネントを起動してはいけません@djfdev Answer –

+0

私は同意します。大文字でなければなりません。あなたの例によれば、私のコードには何も問題はないようです。 –

0

JSXは、通常のHTMLタグとして小文字のタグを扱います。 phoneReactElementPhoneReactElementに変更するか、大文字で始まる名前に変更する必要があります。

詳細については、the docsを参照してください。

+0

動作例https://www.webpackbin.com/bins/-KufbwbaId3vdmXdXLlV – djfdev

+0

応答がありがとうございますが、レンダリングされていることがわかります。添付したスクリーンショットを見ると、そのことがわかります。私はそれを 'PhoneReactElement'に改名し、動作していないようです。 –

+0

私が提供したリンクで正常に動作しているようです...あなたのバージョンにそれを変更すると、空の、無効なHTML要素であるphonereactelement – djfdev

関連する問題