我得到一个"元素类型无效,期望一个字符串......"错误,我很确定我导入/导出模块的方式有问题,但我不确定是什么。如何将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>
);
}
};
答案 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标记