<MuiThemeProvider />中的附加组件导致空白页面没有错误消息

szi*_*ier 7 javascript meteor material-ui

我最近使用了在我的Meteor应用程序中安装了Material UI npm install --save material ui

我已经将<Header />组件显示在我的app.js文件中,但每当我添加其他组件时,localhost:3000只需显示一个空白页面.请参阅下面的代码:

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;
Run Code Online (Sandbox Code Playgroud)

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'));
});
Run Code Online (Sandbox Code Playgroud)

上面的代码工作得很好(见下面的截图) 使用一个组件(<Header />)

但是,如果我添加另一个组件,我会得到一个空白屏幕

header.js是一样的

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;
Run Code Online (Sandbox Code Playgroud)

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'));
});
Run Code Online (Sandbox Code Playgroud)

结果只是一个空白屏幕

为什么<NewPost /><MuiThemeProvider>结果中添加一个组件()在空白屏幕中?我提到了material-ui文档及其示例项目,但它们的应用程序结构与我的不同.有什么建议?如果您需要更多信息以便更清楚地了解此问题,请与我们联系.

szi*_*ier 18

哇很奇怪,但我设法通过简单地添加一个 <div>

app.js

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

工作应用程序

我真的很感激,如果有人能解释为什么添加一个div使这一切都工作.谢谢!

  • 看来MuiThemeProvider只会玩一个单独的子元素.我在浏览器控制台中注意到这一点...警告:失败的道具类型:提供给`MuiThemeProvider`的类型`array`的prop`child`无效,期望一个ReactElement.在应用程序中的MuiThemeProvider(由App创建) (4认同)