reactjs - React Navigation 访问 redux 状态
问题描述
我想知道是否有办法在 App.js 中访问 redux 状态?
解决方案
可以从 App.js 中获取 redux 数据。您可以使用该store#getState
方法执行此操作。使用此方法的唯一问题是 App.js不会在 redux 存储更改时更新。
要从 redux 状态获取数据并自动订阅更改,您必须使用useSelector
钩子或使用 HOC 包装您的组件。
目前,您正在初始化bottomTabNavigator
React 组件的外部。我建议您将其移至名为MainFlow
. 这个容器将负责渲染bottomTabNavigator
. 为 mainFlow 路由而不是 createBottomTabNavigator 加载此容器。
import { NavigationContainer } from '@react-navigation/native';
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
import { useSelector } from 'redux';
// import your page containers
const Tab = createBottomTabNavigator();
export default function MainFlow() {
// here you can use the `useSelector` hook to get the icon
const tabBarIcon = useSelector(state => state.routing.tabBarIcon);
return (
<NavigationContainer>
<Tab.Navigator
screenOptions={() => ({
tabBarIcon: ({focused}) => {
// render icon
}
})}
>
<Tab.Screen name="homeScreen" component={HomePageContainer} />
<Tab.Screen name="explore" component={ExplorePageContainer} />
{/* rest of the tabs */}
</Tab.Navigator>
</NavigationContainer>
);
}
推荐阅读
- php - 使用MYSQL php yii2检查开始时间和结束时间是否部分重叠?
- android - 错误“不能使用提供的参数调用以下函数。:
- sql - 带连接的条件语句
- android - kotlin 中最安全的启动
- tinymce-5 - 如何在 TinyMCE 对话框中显示页脚按钮
- javascript - 保存和查找时猫鼬事务会话的差异
- java - 如何在同一活动中添加回收站视图和抽屉布局?
- c# - 在asp .net web api core 3中返回字符串或404异常
- python - 如何分离 JSON 数据
- javascript - 调用具有 IJSRuntime 方法的 Task 时 Blazor 呈现两次