将react-native side menu添加到我的应用程序(来自react-native元素) - 应用程序在启动时崩溃

时间:2017-07-20 02:35:45

标签: javascript android reactjs react-native

我一直在尝试在我的android应用程序中实现这个side menu(在本机反应中)。我尝试通过将它放在一个类中并添加分号来修改它,但每次启动它时应用程序都会崩溃。

这是我的完整代码:

ps:我的编辑器(visual studio code)在第24行指出了一个错误(onSideMenuChange (isOpen: boolean) {),但我不确定这行是什么错误。

    import { SideMenu, List, ListItem } from 'react-native-elements';
    import {
      AppRegistry,
      StyleSheet,
      Text,
      View
    } from 'react-native';

    export default class myApp extends Component {
      constructor () {
      super();
      this.state = {
        isOpen: false
      };
      this.toggleSideMenu = this.toggleSideMenu.bind(this);
        }

        onSideMenuChange (isOpen: boolean) //error: [js] 'types' can only be used in a .ts file.            
        {
          this.setState({
            isOpen: isOpen
          });
        };

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

        render () {
          const MenuComponent = (
            <View style={{flex: 1, backgroundColor: '#ededed', paddingTop: 50}}>
              <List containerStyle={{marginBottom: 20}}>
              {
                list.map((l, i) => (
                  <ListItem
                    roundAvatar
                    onPress={() => console.log('Pressed')}
                    avatar={l.avatar_url}
                    key={i}
                    title={l.name}
                    subtitle={l.subtitle}
                  />
                ))
              }
              </List>
            </View>
          )

          return (
            <SideMenu
              isOpen={this.state.isOpen}
              onChange={this.onSideMenuChange.bind(this)}
              menu={MenuComponent}>
              <App toggleSideMenu={this.toggleSideMenu.bind(this)} />
            </SideMenu>
          );
        }
        }


     AppRegistry.registerComponent('myApp', () => myApp);

1 个答案:

答案 0 :(得分:1)

onSideMenuChange (isOpen: boolean) //error: [js] 'types' can only be used in a .ts file.            
        {
          this.setState({
            isOpen: isOpen
          });
        };

这里不需要冒号,从line onSideMenuChange(isOpen)中删除冒号并且它将起作用