使用Appbar +抽屉(材料UI + ReactJS)时遇到问题

哈维尔·穆诺兹(Javier Munoz)

我正在尝试使用ReactJS + Material UI做我的第一个应用程序,但是没有成功。

我唯一想做的是,当我单击栏上的按钮时,显示一个左抽屉。

我有以下代码(App.jsx):

import React from 'react';
import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider';
import getMuiTheme from 'material-ui/styles/getMuiTheme';
import lightBaseTheme from 'material-ui/styles/baseThemes/lightBaseTheme';
import AppBar from 'material-ui/AppBar';
import LeftDrawer from './LeftDrawer.jsx';


class App extends React.Component {

    constructor(props) {
        super(props);
        this.state = {open: false};
    }

    handleTouchMap() {
        this.setState({open: !this.state.open});
    }

    render() {
        return (
            <MuiThemeProvider muiTheme={getMuiTheme(lightBaseTheme)}>
                <div>
                    <AppBar
                    title = { "Test 1" }
                    onLeftIconButtonTouchTap={this.handleTouchMap.bind(this)}
                />
                    <LeftDrawer open={this.state.open} />
                </div>
            </MuiThemeProvider>  
        );
    }
}

export default App;

接下来(LeftDrawer.jsx):

import React from 'react';
import Drawer from 'material-ui/Drawer';
import MenuItem from 'material-ui/MenuItem';


class LeftDrawer extends React.Component {

    constructor(props) {
        super(props);
    }

    render() {
        return (
            <div> 
                <Drawer open={this.state.open}>
                    <MenuItem>Menu Item 1</MenuItem>
                    <MenuItem>Menu Item 2</MenuItem>
                </Drawer>
            </div>
        );
    }
}

export default LeftDrawer;

而且我总是得到这个:

Warning: Failed prop type: Invalid prop `children` supplied to `MuiThemeProvider`, expected a single ReactElement.
    in MuiThemeProvider (created by App)
    in App

Uncaught Invariant Violation: MuiThemeProvider.render(): 
A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.

你知道我在做什么错吗?请!

如果我将其<div>包装<Appbar><Leftdrawer>放在App.jsx中。它解决了MuiThemeProvider错误。但是现在,我收到以下错误:

Uncaught TypeError: Cannot read property 'open' of null
亚历山大·拉扎列夫(Alexander Lazarev)

您应该将抽屉的打开状态存储为App组件的状态,并将其作为对Drawer组件的传递

App.jsx:

class MatApp extends React.Component {
  constructor(props) {
    super(props);
    this.state = {open: false};
  }

  handleTouchMap() {
    this.setState({open: !this.state.open});
  }

  render() {
    return (
      <MuiThemeProvider muiTheme={getMuiTheme(lightBaseTheme)}>
        <AppBar
          title = { "Test 1" }
          onLeftIconButtonTouchTap = { this.handleTouchMap.bind(this) }
        />
        <LeftDrawer open={this.state.open} />
      </MuiThemeProvider>  

    );
  }

}
export default App;

LeftDrawer.jsx

class LeftDrawer extends React.Component {

  constructor(props) {
    super(props);
  }

  render() {
    return (
      <div>
        <Drawer open={this.props.open}>
          <MenuItem>Menu Item</MenuItem>
          <MenuItem>Menu Item 2</MenuItem>
        </Drawer>
      </div>
    );
  }
}
export default LeftDrawer;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Appbar +抽屉(材料UI + ReactJS)时遇到问题

来自分类Dev

使用ReactJS从JSON获取数据时遇到问题

来自分类Dev

使用 jQuery UI 滑块移动和缩放 svg 元素时遇到问题?

来自分类Dev

使用LIKE%...%时遇到问题

来自分类Dev

使用onLoad与.each()时遇到问题

来自分类Dev

使用AWS SWF时遇到问题

来自分类Dev

我在使用Geolocation时遇到问题

来自分类Dev

我在使用 OneDrive 时遇到问题

来自分类Dev

使用 AWK 命令时遇到问题

来自分类Dev

使用 Python super 时遇到问题

来自分类Dev

使用 SUMIF 时遇到问题

来自分类Dev

使用 tidyr gather() 时遇到问题

来自分类Dev

使用ReactJS选择一些JSON数据时遇到问题

来自分类Dev

部署时使用capistrano 3时遇到问题

来自分类Dev

使用XAMPP跨文件使用$ _POST时遇到问题

来自分类Dev

使用myString.split(“ \ n”);时遇到问题

来自分类Dev

使用Enthought Python安装IJulia时遇到问题

来自分类Dev

使用PubNub的herenow(java对象)时遇到问题

来自分类Dev

使用jQuery定位内部表时遇到问题

来自分类Dev

使用Git从跟踪中删除文件时遇到问题

来自分类Dev

使用glc-capture录制Minecraft时遇到问题

来自分类Dev

使用MongoDB更新特定子文档时遇到问题

来自分类Dev

在C ++中使用查找功能时遇到问题

来自分类Dev

允许codesign使用我的钥匙串时遇到问题

来自分类Dev

在C ++中使用查找功能时遇到问题

来自分类Dev

使用NSSet构造可用的Swift数组时遇到问题

来自分类Dev

使用Visual Studio提交到git时遇到问题

来自分类Dev

使用g ++编译Makefile时遇到问题

来自分类Dev

使用skimage导入过滤器时遇到问题