2017-08-02 89 views
0

我想弄清楚爲什麼當我滑動我的<Drawer/>時,MatchHistory沒有出現。我在整個網絡中都瀏覽過很多東西,但找不到與此相關的任何內容。爲什麼我的對象不能顯示它的菜單項?

這裏的SideMenu.js文件:

import React, {Component} from 'react'; 
import { Text, View} from 'react-native'; 
import {List, ListItem, Header} from 'react-native-elements'; 
import Container from "native-base/src/theme/components/Container"; 

export default class SideMenu extends Component { 
    constructor(props) { 
     super(props); 
    } 

    render() { 
     let list = [{ 
      title: "Match", 
      onPress:() => { 
       this.props.navigator.replace("Match") 
      } 
     }, { // 2nd menu item below 
      title: "History", 
      onPress:() => { 
       this.props.navigator.replace("History") 
      } 
     }]; 

     return(
      <Container theme={this.props.theme}> 
       <Header/> 
       <View> 
        <List dataArray={list} renderRow={(item) => 
         <ListItem button onPress={item.onPress.bind(this)}> 
          <Text>{item.title}</Text> 
         </ListItem> 
        }/> 
       </View> 
      </Container> 
     ); 
    } 
} 

這裏的AppContainer.js文件:

所有的
import React, {Component} from 'react'; 
import {Navigator} from 'react-native-deprecated-custom-components'; 
import Drawer from "react-native-drawer-menu"; 
import SideMenu from './components/sideMenu'; 

export default class AppContainer extends Component { 
    constructor(props) { 
     super(props); 
     this.state = { 
      toggled: false, 
      store: {}, // holds data stores 
      theme: null 
     } 
    } 

    toggleDrawer() { 
     this.state.toggled ? this._drawer.close() : this._drawer.open(); 
    } 

    openDrawer() { 
     this.setState({toggled: true}); 
    } 

    closeDrawer() { 
     this.setState({toggled: false}); 
    } 

    renderScene(route, navigator) { // current route you want to change to, instance of the navigator 
     switch(route) { 
      default: { 
       return null; 
      } 
     } 
    } 

    // handles how our scenes are brought into view 
    configureScene(route, routeStack) { 
     return Navigator.SceneConfigs.PushFromLeft; // pushes new scene from RHS 
    } 

    render() { 
     return(
      <Drawer 
       ref = {(ref) => this._drawer = ref} 
       type = 'default' // controls how menu appears on screen, pushes content to the side 
       content = {<SideMenu navigator={this._navigator} theme={this.state.theme} 
       />} 
       onClose={this.closeDrawer.bind(this)} 
       onOpen={this.openDrawer.bind(this)} 
       openDrawerOffset={0.9} 
      > 

      <Navigator 
       ref={(ref) => this._navigator = ref} 
       configureScene={this.configureScene.bind(this)} 
       renderScene={this.renderScene.bind(this)} 
      /> 

      </Drawer> 
     ); 
    } 
} 

回答

0

首先有一個在ListView組件沒有這樣的財產dataArray。您需要先創建數據源並將其傳遞給dataSource屬性。看看在DOCUMENTATION

+0

我下面的教程和它的使用'dataArray',沒有任何問題,工作得很好。 – georgecarlin24

+0

哦,我的錯誤。你正在使用一些第三方圖書館。試着使用原生ListView。如果沒有,那麼我無法幫助你。看看庫文檔:) – lukaleli

+0

好的,謝謝你! – georgecarlin24

0

的例子看一下列表API使用ListItemreact-native-elementshttps://react-native-training.github.io/react-native-elements/API/lists/

例子使用title道具設置標題。也許嘗試返回這個來自代替SideMenu渲染

return(
     <Container theme={this.props.theme}> 
      <Header/> 
      <View> 
       <List> 
        { 
        list.map((item, i) => (
         <ListItem onPress={item.onPress} key={i} title={item.title}/> 
        )) 
        } 
       </List> 
      </View> 
     </Container> 
    ); 
+0

試過了,它不起作用。 :( – georgecarlin24

+0

我認爲你混合了'react- native-elements'和React Native的'ListView'公開的'List'的API。更新了文檔中示例的答案 –

+0

這也行不通,我試過了。 – georgecarlin24

相關問題