react-native - Stack Navigator 不显示屏幕
问题描述
所以我一直试图让堆栈导航器工作。根据 console.log('Main') 我确实进入了主屏幕。这就是我想要的。但是,屏幕只是给我一个空白屏幕,只显示标题。我不知道问题是什么。我认为它可能与样式有关,但我已经删除并更改了它,似乎没有任何效果。我一直在导航的只是做 < ScreenName />。但这行不通,因为我也在尝试使用按钮进行导航。 登录主界面截图
App.js
renderComponent() {
if (this.state.loggedIn) {
return (
<Container />
)
} else {
return (
<LoginForm />
)
}
}
render() {
return (
<View>
<Header title='InTouch' />
{this.renderComponent()}
</View>
);
}
}
Screen Container
import React, { Component } from 'react';
import { createStackNavigator, createAppContainer } from 'react-navigation';
import { View, Button } from 'react-native';
import Main from './src/components/Main'
import Upload from './src/components/Upload'
const NavigationStack = createStackNavigator({
Main: {screen: Main },
Upload: {screen: Upload},
},{
navigationOptions: {
gesturesEnabled:false
}
})
const Container = createAppContainer(NavigationStack);
export default Container;
Main.js
export default class Main extends Component<Props> {
state = { currentUser: null}
componentDidMount() {
const { currentUser } = firebase.auth()
this.setState({ currentUser })
}
render() {
console.log("Main")
const { currentUser } = this.state
return (
<View>
<Text>Hello</Text>
<Button title = "Go to upload story" onPress = {() => this.props.navigation.navigate('Upload')} />
<Button
title="Sign out"
onPress={() => firebase.auth().signOut()} />
</View>
);
我只想让主出现。
解决方案
登录界面应该在堆栈导航下,登录后可以导航到其他界面
尝试这样做
const NavigationStack = createStackNavigator({
Login: {screen: Login }
Main: {screen: Main },
Upload: {screen: Upload},
},{
navigationOptions: {
gesturesEnabled:false
}
})
或者,您可以使用 switch 为登录和其他屏幕创建单独的导航
const HomeNavigation = createStackNavigator({
Main: {screen: Main },
Upload: {screen: Upload},
},{
navigationOptions: {
gesturesEnabled:false
}
})
const RootNavigation = createSwitchNavigator({
Login: {screen: Login }
Home: {screen: HomeNavigation }
});
在 App.js 中做
render() {
return (
<RootNavigation/>
);
}
推荐阅读
- java - 在 JavaFX 中显示一个圆数组
- c# - 恢复 Nuget 包缓存?
- c# - Delegate 怎么能调用很多方法呢?
- c# - 如何刷新 Entity Framework Core DbContext 但保留我的属性装饰?
- python - 如何将 numpy.ndarray 转换为 scipy.sparse.coo_matrix
- jestjs - 带有 Dialogflow 连接器的 Botium 绑定适用于 Mocha 但不适用于 Jest
- python - Avoid column header during dataframe export to csv in a for loop
- c++ - 如何以正确的方式构建 CMakeLists?
- excel - 为什么在错误处理子中调整条件格式时会出现 1004 错误?
- batch-file - %TIME% 作为批处理文件函数中的输入参数