2017-09-22 4 views
1

In meinem Haupt-Datei, die ich habe diesen CodeReactDOM.render Nicht alles Rendering

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

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

"../components/phone.js" sieht wie folgt aus:

import React, { Component } from 'react'; 

class TestComponent extends Component { 

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

} 
export default TestComponent; 

Es scheint, wie seine Arbeits richtig, weil es keine fehler in der konsole gibt, und ich kann das element in google chrome tools sehen, aber es scheint leer zu sein. Es zeigt nicht "IT WORKED", was mache ich hier falsch?

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

und es zu machen:

enter image description here

+0

Das funktioniert für mich: http://plnkr.co/edit/xfThQCIsF3PAc0OA2GTo?p=preview Können Sie überprüfen, dass Sie die richtige 'phone.js' importieren? –

+0

Danke, dass du das zusammenstellst, es scheint, dass ein Unterschied sein könnte, dass ich die Komponente exportiere (ich denke, ich mache das richtig). Ich habe bestätigt, dass phone.js korrekt ist. –

+0

Ich beantwortete dies unten, aber gerade bemerkt, das ist ein mögliches Duplikat von https://stackoverflow.com/questions/30373343/reactjs-component-names-must-begin-with-capital-letters – djfdev

Antwort

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

Bedürfnisse sein

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

Gut, danke für die Antwort, aber ich habe versucht, es zu beheben und es schien keinen Unterschied zu machen. Ich denke, da es der Standard-Export ist, sollte es egal sein, was ich es nenne? –

+0

Sie haben Recht, aber die Konsistenz ist wichtig, und Sie sollten nicht beginnen, Ihre Komponente mit einem Kleinbuchstaben überprüfen @djfdev Antwort –

+0

Ich stimme zu, es sollte Großbuchstaben sein, ich wünschte nur, es funktioniert angezeigt. Es sieht so aus, als ob nach meinen Beispielen nichts falsch mit meinem Code wäre. –

0

JSX behandelt Klein Tags als normale HTML-Tags. Sie sollten phoneReactElement zu PhoneReactElement oder etwas anderes, das mit einem Großbuchstaben beginnt, umbenennen.

Weitere Informationen finden Sie unter the docs.

+0

Hier ist ein funktionierendes Beispiel https://www.webpackbin.com/bins/-KufbwbaId3vdmXdXLlV – djfdev

+0

Danke für die Antwort, aber ich kann sehen, dass es gerendert wird, wenn Sie den Screenshot, den ich angehängt habe, betrachten, scheint es darauf hinzuweisen. Ich habe es in 'PhoneReactElement' umbenannt und es scheint nicht zu funktionieren. –

+0

Scheint gut zu funktionieren in dem Link, den ich zur Verfügung gestellt habe ... Ich habe auch bestätigt, dass ein leeres, ungültiges HTML-Element namens phonereactelement in deine Version umgewandelt wird – djfdev