在React Native中

时间:2017-04-11 22:14:38

标签: android reactjs react-native react-native-android

我得到一个"元素类型无效,期望一个字符串......"错误,我很确定我导入/导出模块的方式有问题,但我不确定是什么。如何将MyMenu组件导入MySidebar.js? (我只把相关的代码放入,但我可能已经遗漏了一些东西)

//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>
    );
  }
};

2 个答案:

答案 0 :(得分:0)

而不是export default class MyMenu extends Component尝试module.exports = class Menu extends Component

看看是否有效。

那个侧面很糟糕的PS。我更喜欢原生基地提供的抽屉。

答案 1 :(得分:0)

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

如果您决定保留它,可以通过将变量放在return语句中的大括号中来访问该变量:ContentView {this.menu} / ContentView

来自我的手机。无法使用html标记