[英]React-native creating switch navigator
I am a beginner in react-native. 我是本机反应的初学者。 I am trying to create a navigator sidebar and i have an error regarding creating the switch navigator.
我正在尝试创建导航器侧栏,并且在创建开关导航器时出现错误。 I have followed tutorials but i came up with an error
我已按照教程进行操作,但出现错误
Require cycle: modules\\Dashboard.js -> modules\\Navigator.js -> modules\\Dashboard.js 需要周期:modules \\ Dashboard.js-> modules \\ Navigator.js-> modules \\ Dashboard.js
I have this in my Navigator.js : 我在Navigator.js中有这个:
import React, { Component } from 'react'
import { Platform, Dimensions } from 'react-native'
import { createSwitchNavigator, createAppContainer } from 'react-navigation';
//navigators
import Dashboard from '../modules/Dashboard.js'
const WIDTH = Dimensions.get('window').width;
const DrawerConfig = {
drawerWidth: WIDTH*0.83,
}
const SwitchNavigator = createSwitchNavigator(
{
dashboard: {
screen: Dashboard
},
},
DrawerConfig
);
const AppContainer = createAppContainer(SwitchNavigator);
class Navigator extends Component {
render() {
return (
<AppContainer />
);
}
}
and Here is my fullcode from Dashboard.js : 这是来自Dashboard.js的完整代码:
import React, { Component } from 'react'
import { StyleSheet, Text, View } from 'react-native'
import MenuButton from '../modules/MenuButton.js'
import Navigator from '../modules/Navigator.js'
class Dashboard extends Component {
render() {
return (
<View style={styles.container}>
<Navigator />
<MenuButton navigation={this.props.navigation} />
<Text style={styles.smallBlue}>Dashboard</Text>
</View>
);
}
}
const styles = StyleSheet.create({
//Views
container: {
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center'
},
//Text
smallBlue: {
marginTop: 30,
color: 'powderblue',
fontWeight: 'bold',
fontSize: 30,
}
});
export default Dashboard
Is this because i imported already dashboard from my navigator and my dashboard imported my navigator ? 这是因为我已经从导航器导入了仪表板,而仪表板又从导航器导入了吗?
Yes it is import issue as described in this link 是的,这是此链接中所述的导入问题
You should not use Navigator in your dashboard screen. 您不应在仪表板屏幕中使用导航器 。 it should be in your app register component
它应该在您的应用程序注册组件中
index.js index.js
import Navigator from "./Navigator";
AppRegistry.registerComponent(appName, () => Navigator);
Navigator.js Navigator.js
import React, { Component } from 'react'
import { Platform, Dimensions } from 'react-native'
import { createSwitchNavigator, createAppContainer } from 'react-navigation';
//navigators
import Dashboard from '../modules/Dashboard.js'
const WIDTH = Dimensions.get('window').width;
const DrawerConfig = {
drawerWidth: WIDTH*0.83,
}
const SwitchNavigator = createSwitchNavigator(
{
dashboard: {
screen: Dashboard
},
},
DrawerConfig
);
const AppContainer = createAppContainer(SwitchNavigator);
export default class Navigator extends Component {
render() {
return (
<AppContainer />
);
}
}
Update For Expo 更新世博会
Update App.js file and add Navigator.js code 更新App.js文件并添加Navigator.js代码
import React, { Component } from 'react'
import { Platform, Dimensions } from 'react-native'
import { createSwitchNavigator, createAppContainer } from 'react-navigation';
//navigators
import Dashboard from '../modules/Dashboard.js'
const WIDTH = Dimensions.get('window').width;
const DrawerConfig = {
drawerWidth: WIDTH*0.83,
}
const SwitchNavigator = createSwitchNavigator(
{
dashboard: {
screen: Dashboard
},
},
DrawerConfig
);
const AppContainer = createAppContainer(SwitchNavigator);
export default class Navigator extends Component {
render() {
return (
<AppContainer />
);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.