2017-04-11 115 views
0

我收到一个“元素类型无效期望的字符串...”错误,我敢肯定,我如何导入/导出我的错误模块,但我不知道是什么。如何将MyMenu组件导入MySidebar.js? (我只把相关的代码中,我可能已经错过了,虽然东西)难以从React Native中的不同文件中导出/导入组件

//MySidebar.js 

import MyMenu from './MyMenu.js'; 

class SideBar extends Component { 
render() { 
var menu = <MyMenu />; 

    return (
    <SideMenu menu={menu}> 
     <ContentView/> 
    </SideMenu> 
); 
} 
} 



//MyMenu.js 

export default class MyMenu extends Component { 
    static propTypes = { 
    onItemSelected: React.PropTypes.func.isRequired, 
    }; 

    render() { 
    return (
     <ScrollView scrollsToTop={false} style={styles.menu}> 
     <View style={styles.avatarContainer}> 
      <Image 
      style={styles.avatar} 
      source={{ uri, }}/> 
      <Text style={styles.name}>Your name</Text> 
     </View> 

     <Text 
      onPress={() => this.props.onItemSelected('About')} 
      style={styles.item}> 
      About 
     </Text> 

     <Text 
      onPress={() => this.props.onItemSelected('Contacts')} 
      style={styles.item}> 
      Contacts 
     </Text> 
     </ScrollView> 
    ); 
    } 
}; 
+0

如果文件位于同一目录中,请从导入语句=>'import MyMenu'./MyMenu';'中删除文件类型。相当肯定''SideMenu menu = {menu}>',其中'menu'是一个组件,是错误的jsx语法。你打算如何完成? – NiFi

+0

我不认为它是文件类型(尽管我尝试过),因为我的其他导入通过导入.js文件工作。至于,这是侧边菜单的API,我从这里复制了他们的示例代码:https://github.com/react-native-community/react-native-side-menu –

+0

确实看起来像使用.js后缀作品,即使它不严格按照标准。我所要做的就是试图通过移除/简化代码来缩小问题的根源,直到找出具体突破的地方。例如,从SideBar的'render'方法工作中只返回''? – NiFi

回答

0

代替export default class MyMenu extends Component尝试module.exports = class Menu extends Component

看看是否能工程。

PS that sidemenu sucks。我更喜欢本地基地提供的抽屉。

0

如果在MySidebar.js的返回函数内部替换ContentView,它应该可以工作。没有必要将元素保存在变量中。

如果您决定保留它,你可以把它在大括号return语句内访问变量:内容查看{} this.menu /内容查看

书面我的电话。不能使用html标签