javascript - React Native Navigation 将所有屏幕包裹在一个视图中
问题描述
使用 react-navigation v5,如何将所有屏幕单独包装在滚动视图和键盘安全视图中?
export default function App() {
return (
<NavigationContainer>
<Stack.Navigator initialRouteName="Home">
<Stack.Screen name="Home" component={HomeScreen} />
<Stack.Screen name="Test" component={TestScreen} />
</Stack.Navigator>
</NavigationContainer>
);
}
解决方案
在导航容器内,您只能使用 Navigator 或 Screen。所以你不能Stack.Screen
用任何其他组件包装。
您可以做的是包装屏幕组件:
可能创建一个新组件ScreenTemplate
,您可以决定名称。然后使用这个组件来实现你的键盘避免和滚动逻辑。
const ScreenTemplate = ({children}) => (
<AnyWrapperComponent>
{children}
</AnyWrapperComponent>
);
在任何其他屏幕中:
const HomeScreen = () => (
<ScreenTemplate>
//implement anything you want
<BlaBlaComponent />
//etc..
</ScreenTemplate>
);
推荐阅读
- javascript - 将 Javascript 文件与 wordpress 插件链接
- python - 在 python/kivy 中使用 screenmananger 时出现黑屏
- c# - 第三方项目未使用的自发布包中的build文件夹文件
- python - Top down movement in Pygame
- php - 问题不在 MySQL 数据库中远程运行查询
- c++ - 从模板参数包将指向成员的指针传递给函数对象
- data-structures - 表达式的模式匹配
- sql - 如何透视表
- angular - Angular 8中基于角色的用户与枚举
- html - 如何使用自定义 CSS 获取 Squarespace 页面以在移动设备上正确显示?