首页 > 解决方案 > TypeError: undefined is not an object(evaluation'_this.props.navigation.openDrawer')

问题描述

我是编程新手,遇到了一些我无法解决的问题。我希望你们中的一些人能提供帮助。

我收到错误消息:

TypeError: undefined is not an object(evaluation'_this.props.navigation.openDrawer')

当我试图点击我的导航器时。我想从我的个人资料视图导航到预订视图。

标签: javascriptreact-native

解决方案


我测试了你的应用程序,我只有没有抽屉的登录页面,所以你的 App 类的第二个 render() 方法似乎覆盖了第一个。

然后我删除了 App.js 上的第二个 render() 方法

然后我再次测试了你的源代码:抽屉在 Android、iO、chrome 和 Firefox 上运行良好,只要用户点击 forwardburger 图标,它就会打开。

所以我敢打赌你的问题是有两个 render() 方法。

如果没有,以下是导致我使您的项目独立工作的步骤:

expo init

-> 在 expo init 的交互式问题上,我将名称设置为 «openDrawer_problem»,然后将模板设置为 «空白»

expo install firebase
expo install expo-constants
expo install react-navigation
expo install react-navigation-drawer
expo install @expo/vecto-icons
expo install react-native-paper
expo install react-native-screens
expo install react-native-gesture-handler
expo install react-native-reanimated
expo start

关于您的问题的旁注:

  • CRITICAL - App.js 中有两个 render() 方法!第二个覆盖第一个。
  • 想知道 - 您在互联网上暴露了您的 Firebase 访问权限。它会被滥用吗?我对firebase一无所知,这让我很困惑。
  • 仅供参考 - 您的代码缺少依赖项“./components/LoginForm » 和“./components/SignUpForm”。开箱即用会很好。我不得不模拟它们。
  • 重要 - 除非您有正当理由,否则您的文件扩展名最好都是标准的(小写,即 .js )。显然,模块加载器无法识别 .Js 扩展名。我不得不替换 .Js -> .js

让我知道这是否解决了您的问题,我很好奇;)


推荐阅读