基于反应原生的状态渲染组件

时间:2016-08-18 18:51:35

标签: javascript react-native ecmascript-6 components

我在应用中使用react-native-side-menu菜单。由于此模块使用状态来控制单击的菜单,我想用它来渲染组件。

我被称为solution但是它没有用,我得到了

  

期望一个组件类,得到[object Object]。

这就是我所做的:

import React, { Component } from 'react';
import {
  StyleSheet,
  Text,
  View,
  Image,
  TouchableOpacity,
} from 'react-native';
import Menu from './menu';

import SideMenu from 'react-native-side-menu';
import First from './first';
import Second from './second';

module.exports = class Main extends Component {
    state = {
    isOpen: false,
    selectedItem: 'First',
  };

  toggle() {
    this.setState({
      isOpen: !this.state.isOpen,
    });
  }

  updateMenuState(isOpen) {
    this.setState({ isOpen, });
  }

  onMenuItemSelected = (item) => {
    this.setState({
      isOpen: false,
      selectedItem: item,
    });
  }

  render() {
    const menu = <Menu onItemSelected={this.onMenuItemSelected} />;

    return (
      <SideMenu
        menu={menu}
        isOpen={this.state.isOpen}
        onChange={(isOpen) => this.updateMenuState(isOpen)}
        >
        <this.state.selectedItem />
        <Button style={styles.button} onPress={() => this.toggle()}>
          <Image
            source={require('./assets/menu.png')} style={{width: 32, height: 32}} />
        </Button>
      </SideMenu>
    );
  }
}
....

更新

感谢@NaderDabit建议。是的,我应该使用

selectedItem: <First />,

代替。

0 个答案:

没有答案