我在理解如何在expo 项目上实施Reduxstore 时遇到了问题,因为它的路由和导航是如何工作的.

我真的不知道如何以及在哪里提供store .

我的项目被配置为从这个文件开始:

//Index.tsx

import { Redirect } from "expo-router";
import Onboarding from "./Onboarding";

export default function App() {
  return <Onboarding />;
}

//Layout.tsx

import { Stack } from "expo-router";

export default function LoginLayout() {
  return (
    <Stack
      initialRouteName="home"
      screenOptions={{
        headerShown: false,
        headerStyle: {
          backgroundColor: "brown",
        },
        headerTintColor: "#fff",
        headerTitleStyle: {
          fontWeight: "bold",
        },
      }}
    >
      <Stack.Screen
        name="login"
        options={{
          title: "Login",
        }}
      />
      <Stack.Screen
        name="register"
        options={{
          title: "Login",
        }}
      />
    </Stack>
  );
}

这是这款应用程序的开始.

根据expo 路由的工作方式,我在哪里提供store ?因为最终,我们将离开这个组件?

推荐答案

这是一个非常通用的解决方案,可以在应用的根目录或根目录附近创建和提供Reduxstore 以及任何其他全局上下文提供程序.

在本例中,您可以导入App中的存储并呈现包裹在根组件周围的Redux Provider.

例如:

import { Redirect } from "expo-router";
import { Provider } from "react-redux";
import Onboarding from "./Onboarding";
import { store } from "../path/to/store";

export default function App() {
  return (
    <Provider store={store}>
      <Onboarding />
    </Provider>
  );
}

Reactjs相关问答推荐

运行 node server.js会导致以下错误:Route.post()需要回调函数,但在Route.&处得到了[对象Undefined] lt;计算>

有没有方法覆盖NextJS 14中的布局?

无法从正在使用Reaction的Electron 商务store 项目中的购物车中删除项目

REACTJS:在Reaction中根据路由路径更改加载器API URL

使用筛选器的Primereact DataTable服务器端分页?

如何使用皮金贴图在Reactjs中制作 map 上的点之间的线的动画?

在Reaction中导入';图片&文件夹时出错

使用VITE的Reaction应用程序的配置是否正确?

为什么在页面重新加载时Location.State变得未定义?

使用 React + Vite 范围化 CSS

在reactjs中刷新页面时丢失状态值

验证 Yup 中的对象项

将 useRef 与 useImperativeHandle 一起使用时,React 不会重新渲染

需要先填写依赖输入字段,以便其他人工作

在复选框中react 检索选中的值

需要在窗口调整大小时更新 React 组件

React JS:如何判断用户使用的是浏览器 url 还是桌面 electron

从一个获取 axios 请求(ReactJS)中删除默认参数

Storybook - 无法解析generated-stories-entry.cjs/字段browser不包含有效的别名配置

React Router 6,一次处理多个搜索参数