2016-07-01 2 views
5

Ich habe vor kurzem-Material UI in mein Meteor-Anwendung installiert mit npm install --save material uiZusatzkomponente in <MuiThemeProvider /> Ergebnisse in leere Seite w/ohne Fehlermeldungen

Ich habe das in meiner app.js Datei zeigt sich <Header /> Komponente bekommen, aber wann immer Ich füge andere Komponenten hinzu, localhost:3000 zeigt einfach eine leere Seite an. Bitte beachten Sie meinen Code unten:

header.js

import React, { Component } from 'react'; 
import AppBar from 'material-ui/AppBar'; 

class Header extends Component { 
    render() { 
    return(
     <AppBar 
     title="Header" 
     titleStyle={{textAlign: "center"}} 
     showMenuIconButton={false} 
     /> 
    ); 
    } 
} 

export default Header; 

app.js

import React from 'react'; 
import ReactDOM from 'react-dom'; 
import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider'; 

import Header from './components/header'; 
import NewPost from './components/new_post'; 

const App =() => { 
    return (
    <MuiThemeProvider> 
     <Header /> 
    </MuiThemeProvider> 
); 
}; 

Meteor.startup(() => { 
    ReactDOM.render(<App />, document.querySelector('.render-target')); 
}); 

Der obige Code gut funktioniert (siehe Abbildung unten) Working with one component (<Header />)

Wenn ich jedoch eine andere Komponente hinzufügen, erhalte ich eine leere Bildschirm

header.js ist die gleiche

new_post.js

import React, { Component } from 'react'; 
import TextField from 'material-ui/TextField'; 

class NewPost extends Component { 
    render() { 
    return (
     <TextField 
     hintText="Full width" 
     fullWidth={true} 
     /> 
    ); 
    } 
} 

export default NewPost; 

app.js

import React from 'react'; 
import ReactDOM from 'react-dom'; 
import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider'; 

import Header from './components/header'; 
import NewPost from './components/new_post'; 

const App =() => { 
    return (
    <MuiThemeProvider> 
     <Header /> 
     <NewPost /> 
    </MuiThemeProvider> 
); 
}; 

Meteor.startup(() => { 
    ReactDOM.render(<App />, document.querySelector('.render-target')); 
}); 

Das Ergebnis ist einfach ein leerer Bildschirm

Warum eine weitere Komponente wirkt sich das Hinzufügen (<NewPost />) innerhalb von <MuiThemeProvider> Ergebnis in einem leeren Bildschirm? Ich habe auf die material-ui Dokumentation und ihre Beispielprojekte verwiesen, aber ihre Anwendungsstruktur ist meiner nicht ähnlich. Irgendein Rat? Bitte lassen Sie mich wissen, wenn Sie mehr Informationen benötigen, um diese Frage klarer zu machen.

Antwort

14

Wow sehr seltsam, aber ich schaffte es durch einfaches Hinzufügen eines <div>

arbeiten lassen app.js

const App =() => { 
    return (
    <MuiThemeProvider muiTheme={getMuiTheme()}> 
     <div> 
     <Header /> 
     <NewPost /> 
     </div> 
    </MuiThemeProvider> 
); 
} 
Meteor.startup(() => { 
    ReactDOM.render(<App />, document.querySelector('.render-target')); 
}); 

working app

Ich würde wirklich schätzen, wenn jemand erklären könnte, warum das Hinzufügen Ein div macht dies alles funktioniert. Vielen Dank!

+3

Es scheint, MuiThemeProvider wird nur mit einem einzigen Kind Element nett spielen. Ich bemerkte dies in der Browser-Konsole ... Warnung: Fehlgeschlagen Prop-Typ: Ungültige Prop 'Kinder' von Typ' Array' an 'MuiThemeProvider' geliefert, erwartet ein einzelnes ReactElement. in MuiThemeProvider (erstellt von App) in App – digitalacorn

Verwandte Themen