React Native 组件异常:undefined 不是对象 (evaluating_useContext.isAuthenticated
React Native Component Exception: undefined is not an object (evaluating_useContext.isAuthenticated
我正在尝试对用户进行身份验证并从另一个文件中提取上下文。我觉得我做的事情很简单,但我总是犯同样的错误。我是不是导入了 useContext 错误?
import React, { useContext } from "react";
import { NavigationContainer } from "@react-navigation/native";
import { AppNavigator } from "./app.navigator";
import { AccountNavigator } from "./account.navigator";
import { AuthenticationContext } from "../../services/authentication/authentication.context";
export const Navigation = () => {
const { isAuthenticated } = useContext(AuthenticationContext);
return (
<NavigationContainer>
{isAuthenticated ? <AppNavigator /> : <AccountNavigator />}
</NavigationContainer>
);
};
上下文根据以下用户的请求提供更多信息
import React, { useState, createContext } from "react";
import * as firebase from "firebase";
import { loginRequest } from "./authentication.service";
export const AuthenticationContext = createContext();
export const AuthenticationContextProvider = ({ children }) => {
const [isLoading, setIsLoading] = useState(false);
const [user, setUser] = useState(null);
const [error, setError] = useState(null);
const onLogin = (email, password) => {
setIsLoading(true);
loginRequest(email, password)
.then((u) => {
setUser(u);
setIsLoading(false);
})
.catch((e) => {
setIsLoading(false);
setError(e);
});
};
return (
<AuthenticationContext.Provider
value={{
user,
isLoading,
error,
onLogin,
}}
>
{children}
</AuthenticationContext.Provider>
);
};
我正在尝试对用户进行身份验证并从另一个文件中提取上下文。我觉得我做的事情很简单,但我总是犯同样的错误。我是不是导入了 useContext 错误?
import React, { useContext } from "react";
import { NavigationContainer } from "@react-navigation/native";
import { AppNavigator } from "./app.navigator";
import { AccountNavigator } from "./account.navigator";
import { AuthenticationContext } from "../../services/authentication/authentication.context";
export const Navigation = () => {
const { isAuthenticated } = useContext(AuthenticationContext);
return (
<NavigationContainer>
{isAuthenticated ? <AppNavigator /> : <AccountNavigator />}
</NavigationContainer>
);
};
上下文根据以下用户的请求提供更多信息
import React, { useState, createContext } from "react";
import * as firebase from "firebase";
import { loginRequest } from "./authentication.service";
export const AuthenticationContext = createContext();
export const AuthenticationContextProvider = ({ children }) => {
const [isLoading, setIsLoading] = useState(false);
const [user, setUser] = useState(null);
const [error, setError] = useState(null);
const onLogin = (email, password) => {
setIsLoading(true);
loginRequest(email, password)
.then((u) => {
setUser(u);
setIsLoading(false);
})
.catch((e) => {
setIsLoading(false);
setError(e);
});
};
return (
<AuthenticationContext.Provider
value={{
user,
isLoading,
error,
onLogin,
}}
>
{children}
</AuthenticationContext.Provider>
);
};