【问题标题】:Couldn't find a navigation object. Is your component inside a screen in a navigator? DrawerNavigator找不到导航对象。您的组件是否在导航器的屏幕内?抽屉导航器
【发布时间】:2021-05-31 03:00:31
【问题描述】:

当我使用{ useIsFocused } "; 时出现此错误Couldn't find a navigation object. Is your component inside a screen in a navigator。我真的很努力,但没有找到任何合适的解决方案,谁能帮我解决这个问题。

谢谢

import React, { useEffect } from "react";
import { createDrawerNavigator } from "@react-navigation/drawer";
import { useIsFocused } from "@react-navigation/native";

import TabMenu from "../navigations/TabNavigation";
import SideBarMenu from "../components/SideBarMenu/SideBarMenu";

const Drawer = createDrawerNavigator();

const DrawerNavigator = ({ navigation }) => {
  const isFocused = useIsFocused();
  console.log("@@ props", navigation);
  useEffect(() => {
    console.log(" I am workign");
  }, [isFocused]);
  return (
    <Drawer.Navigator drawerContent={(props) => <SideBarMenu {...props} />}>
      <Drawer.Screen name="Home" component={TabMenu} />
    </Drawer.Navigator>
  );
};

export default DrawerNavigator;

【问题讨论】:

    标签: react-native expo react-navigation react-navigation-stack react-navigation-drawer


    【解决方案1】:

    您正在尝试在导航器中使用它。您可以在导航器内呈现为屏幕的组件中使用useIsFocused。例如,您可以在 TabMenu 组件中使用它

    【讨论】:

    • 实际上,我想在用户点击 menu 时点击端点。当用户点击它时它实际上是抽屉菜单我正在触发 useIsFocused() 但它抛出 navigation object 找不到
    • 我不确定我是否理解您想要做什么。如果你想在侧边菜单屏幕打开时触发一个事件,你可以在drawerContent 组件中使用useIsFocused(这可以是一个像任何其他组件一样使用钩子的组件)。问题是您只能在屏幕内使用useIsFocused,而您正试图在导航器中使用它。
    猜你喜欢
    • 2021-04-10
    • 2020-09-04
    • 1970-01-01
    • 2020-02-14
    • 1970-01-01
    • 2020-09-12
    • 1970-01-01
    • 1970-01-01
    • 2018-12-22
    相关资源
    最近更新 更多