2017-04-11 63 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標籤