UseContext似乎没有更新变量

时间:2020-07-17 05:48:42

标签: firebase react-native

我正在使用Firebase作为后端。目前,我正在创建该功能,以在应用程序重启后自动登录用户。这是我在App.js中所做的

export default function App() {
  const [user, setUser] = useState();

  // Listen for authentication state to change.
  firebase.auth().onAuthStateChanged((user) => {
    if (user != null) {
      console.log("We are authenticated now!");
      setUser(user);
    } else {
      console.log("haven't got authenticated");
    }
  });

  return (
    <AuthContext.Provider value={{ user, setUser }}>
      <NavigationContainer theme={navigationTheme}>
        {user ? <AppNavigator /> : <AuthNavigator />}
      </NavigationContainer>
    </AuthContext.Provider>
  );
}

这很好地实现了持久的登录状态。但是,AppNavigator的一个屏幕显示用户信息。我正在通过useContext传递用户。

const { user, setUser } = useContext(AuthContext);

<ListItem
          title={user.user.displayName}
          subTitle={user.user.email}
          image={require("../assets/mosh.jpg")}
        />

导航到此屏幕后,我一直收到此错误:TypeError:undefined不是对象(正在评估“ user.user.displayName”)。

我想知道这是否意味着用户没有在另一个组件中更新?

0 个答案:

没有答案