【发布时间】:2021-07-29 03:26:05
【问题描述】:
我需要以某种方式从 App.js 访问我的 Redux 商店,从 docs 它说我可以为我的 App 创建新的入口点,所以我确实创建了一个,但不知何故我的 App 仍然无法访问 Redux Store。
Error: could not find react-redux context value; please ensure the component is wrapped in a <Provider>
这是我的 App.js 代码
import React, { useState, useEffect } from "react";
import { NavigationContainer } from "@react-navigation/native";
import { createStackNavigator } from "@react-navigation/stack";
import { useFonts } from "expo-font";
import AppLoading from "expo-app-loading";
import { Provider } from "react-redux";
import { useDispatch, useSelector } from "react-redux";
//Layout
import Auth from "./src/layout/Auth.layout";
import Register from "./src/layout/Register.layout";
import Drawer from "./src/navigation/Drawer";
export default function App() {
const Stack = createStackNavigator();
const { isLoggedIn } = useSelector((state) => state.user);
const [isLoading, setIsLoading] = useState(false);
let [fontsLoaded] = useFonts({
DMSans: require("./assets/fonts/DMSans-Regular.ttf"),
"DMSans-Medium": require("./assets/fonts/DMSans-Medium.ttf"),
"DMSans-Bold": require("./assets/fonts/DMSans-Bold.ttf"),
});
if (!fontsLoaded || isLoading) {
return <AppLoading />;
} else {
return (
<NavigationContainer>
{!isLoggedIn ? (
<Stack.Navigator
initialRouteName="Auth"
screenOptions={{ headerShown: false }}
>
<Stack.Screen name="Auth" component={Auth} />
<Stack.Screen name="Register" component={Register} />
</Stack.Navigator>
) : (
<Drawer />
)}
</NavigationContainer>
);
}
}
这是我创建的 EntryPoint.js:
import { registerRootComponent } from "expo";
import App from "../App";
import React from "react";
import { store, persistor } from "./state/store";
import { PersistGate } from "redux-persist/es/integration/react";
import { Provider } from "react-redux";
export default function EntryPoint() {
return (
<Provider store={store}>
<PersistGate persistor={persistor}>
<App />
</PersistGate>
</Provider>
);
}
registerRootComponent(EntryPoint);
我在这里缺少什么?还是我可以实施更好的解决方案?
【问题讨论】:
标签: reactjs react-native redux react-redux