react-native - 导航到新视图
问题描述
如何正确导航到新视图?
应用程序:
- TabNavigator(屏幕顶部)
- StackNavigator(屏幕底部)
我希望在从 StackNavigator 中选择一个按钮后打开一个新屏幕,该屏幕将覆盖整个应用程序。我不想看到 TabNavigator 和 StackNavigator。
在新窗口中,我希望它是带有返回按钮的 NavBar
我正在观看的所有教程都显示了如何在屏幕之间切换,但我找不到上述情况。
我想从主应用程序打开一个新窗口,然后返回它
编辑:
const TopNavTabs = TabNavigator({
General: { screen: General },
Help: { screen: Help },
Tips: { screen: Tips },
}
});
export const Navigation = StackNavigator(
{
Tab: { screen: TopNavTabs },
Article: { screen: Article },
}
);
export default class App extends Component{
render(){
return(
<View>
<View>
<Navigation navigation={this.props.navigation} />
</View>
<View>
<View>
<MCIcon name="account"/>
</View>
<View>
<MIcon name="create" onPress={() => this.props.navigation.navigate('Article')} />
</View>
<View>
<FAIcon name="hashtag" />
</View>
<View>
<FAIcon name="search" />
</View>
</View>
</View>
)
}
}
解决方案
TabNavigator
像这样添加StackNavigator
:
const TopNavTabs = TabNavigator(
{
General: { screen: General },
Help: { screen: Help },
Tips: { screen: Tips },
},
{
navigationOptions: ({ navigation }) => ({
tabBarIcon: ({ focused, tintColor }) => {
const { routeName } = navigation.state;
let iconName;
if (routeName === 'Home') {
iconName = `ios-information-circle${focused ? '' : '-outline'}`;
} else if (routeName === 'Settings') {
iconName = `ios-options${focused ? '' : '-outline'}`;
}
// You can return any component that you like here! We usually use an
// icon component from react-native-vector-icons
return <Ionicons name={iconName} size={25} color={tintColor} />;
},
}),
tabBarOptions: {
activeTintColor: 'tomato',
inactiveTintColor: 'gray',
},
tabBarComponent: TabBarBottom,
tabBarPosition: 'bottom',
animationEnabled: false,
swipeEnabled: false,
}
);
export const Navigation = StackNavigator(
{
Tab: { screen: TopNavTabs },
Article: { screen: Article },
}
);
export default class App extends Component{
render(){
return(
<Navigation />
)
}
}
推荐阅读
- vba - 使用 Call Shell() 从 Excel VBA 调用 .jar 时出错
- python-3.x - 为大型文档批量运行 spaCy nlp() 管道
- c++ - 为什么在使用 SDL2 时仍然出现“未定义的引用”链接器错误?
- batch-file - 获取以特定字符串开头的行并将它们添加到之前的行 - bat file..windows
- c++ - VS 2017 Community 出现链接器错误,但 Professional 没有
- mariadb - 优化每天查看特定时间窗口的查询
- tsql - 如何在 SQL Operations Studio 中访问服务器属性?
- zos - 如何使用 Java 确定在 z/OS 上哪个安全管理器处于活动状态?
- swift - 如何以编程方式将 UILabel 和 UIImageView 添加到 CollectionView?
- javascript - 如何使用 JS 保持浏览器的离开页面警告不显示?