RNGestureHandlerModule.attach 手势处理程序有 3 个参数,预期为 2 个

2023-12-31

我正在使用 React Native 构建一个应用程序,并有一个登录、主页和会员屏幕。当用户是管理员时,我让他进入主屏幕,当他是会员时,我让他进入会员屏幕。 在主屏幕内,我还有 AddMember 屏幕,因此我在堆栈导航内构建堆栈导航和抽屉导航以导航到这些屏幕。 App.js 代码:

import 'react-native-gesture-handler';
import React from 'react';

import { NavigationContainer } from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
import { createDrawerNavigator } from '@react-navigation/drawer';


import LoginScreen from './screens/LoginScreen';
import HomeScreen from './screens/HomeScreen';
import MembersScreen from './screens/MembersScreen';
import AddMember from './screens/AddMember';

const Stack = createNativeStackNavigator();
const Drawer = createDrawerNavigator();

function Root() {
return (
<Drawer.Navigator>
  {/* <Drawer.Screen name="Home" component={HomeScreen} /> */}
  <Drawer.Screen name="AddMember" component={AddMember} />
</Drawer.Navigator>
);
}

export default function App() {
return (
<NavigationContainer>
  <Stack.Navigator>
    <Stack.Screen name="Login" component={LoginScreen} />
    <Stack.Screen
      name="Root"
      component={Root}
      options={{ headerShown: false }}
    />
    {/* <Stack.Screen name="Home" component={HomeScreen} /> */}
    <Stack.Screen name="Members" component={MembersScreen} />
   </Stack.Navigator>
   </NavigationContainer>
  );
  }

和登录屏幕

import { useNavigation } from '@react-navigation/core';
import React, { useEffect, useState } from 'react';
import { StyleSheet, Text, TextInput, TouchableOpacity, View } from 'react-native';

import { 
auth, 
signInWithEmailAndPassword,
onAuthStateChanged,
db,
collection,
getDocs
} from '../firebase';

export default function LoginScreen() {
const [email , setEmail ] = useState('');
const [password , setPassword ] = useState('');

const navigation = useNavigation();

useEffect(() => {
    const unsibscribe = onAuthStateChanged(auth, (user) => {
        if(user) {
            handleCheckAdmin(user.email);
        }
    });

    return unsibscribe;

}, []);

const hanldeLogin = async () => {
    await signInWithEmailAndPassword(auth, email, password)
    .then(userCredentials => {
        const user = userCredentials.user;
    })
    .catch(error => alert(error.message));
}

const handleCheckAdmin = async (userEmail) => {
    try {
        const admins = collection(db, 'admin');
        const adminSnapshot = await getDocs(admins);
        const adminList = adminSnapshot.docs.map(doc => doc.get("adminEmail"));

        adminList.forEach(adEmail => {
        if (adEmail === userEmail) {
            navigation.replace('Root');

        }
        else {
            navigation.replace('Members');
        }
    });

    } catch (error) {
        console.log(error);
    }
}

return (
    <View 
        style={styles.container}
        behavior="padding"
    >
        <View style={styles.inputContainer}>
            <TextInput 
                placeholder="Email"
                value={email}
                onChangeText={ text => setEmail(text)}
                style={styles.input}
            />
            <TextInput 
                placeholder="Password"
                value={password}
                onChangeText={ text => setPassword(text)}
                style={styles.input}
                secureTextEntry
            />
        </View>
        <View style={styles.buttonContainer}>
            <TouchableOpacity
                onPress={hanldeLogin}
                style={styles.button}
            >
                <Text style={styles.buttonText}>Login</Text>
            </TouchableOpacity>
        </View>
    </View>
     )
     }

我的问题是当我运行应用程序并登录主屏幕时,出现以下错误: RNGestureHandlerModule.attach 手势处理程序有 3 个参数,预期为 2 个。


我在降级 expo SDK 时开始遇到这个问题。我只是通过运行来解决它expo install react-native-gesture-handler。这样,expo 将针对您当前的 SDK 处理反应原生手势处理程序的最佳版本。希望能帮助到你!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RNGestureHandlerModule.attach 手势处理程序有 3 个参数,预期为 2 个 的相关文章

随机推荐

  • Xcode 9 模拟器上的 Google 地图在移动地图时使用超过 100% 的 CPU

    因此 我现在已将我的项目转换为在 Xcode 9 中使用 Swift 4 并开始测试我的应用程序 这是一个大型应用程序 有四个不同的选项卡 几乎所有内容都按预期运行 其中一个选项卡是地图 使用 GoogleMaps 我从来没有遇到过任何问题
  • Gradle Ear 使用当前 WAR 文件名更新 application.xml

    我有一个 java EAR 项目 其中包含一些 WAR Web 应用程序 我正在使用 gradle 构建 EAR 文件 uberApp gt WarA
  • #<#:0x007fe3546d58f0> 的未定义方法 `posts_path'

    我是 Rails 新手 收到此错误 undefined method posts path for lt
  • Outlook - 根据收件人插入文本

    我需要根据收件人自动将文本插入到外发电子邮件中 我在另一个问题 归功于 76Mel 的答案中发现了一些看起来很有希望的代码 看来我可以将代码附加到 ThisOutlookSession 中的 ItemSend Private Sub App
  • Discord.py 无法获取证书

    我是否必须在系统内安装 生成 下载新证书 或者我是否可以以某种方式禁用 python 内的证书 ubuntu 18 python 3 7 discord py latest INFO 2019 03 05 22 58 02 Initiali
  • 如何在角度js中显示依赖选择框选项[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我有一个表单 我想要两个选择框 以便其中一个选择框的某些选项将根据另一个选择框的当前值显示 隐藏 e g Select
  • 在基本图形的绘图区域之外绘制图例?

    正如标题所说 使用基础图形时如何在绘图区域之外绘制图例 我想过摆弄layout并生成一个仅包含图例的空图 但我对仅使用基本图形设施的方式感兴趣 例如 par mar 在图例的右侧留出一些空间来放置图例 这里有一个例子 plot 1 3 rn
  • 我应该停止使用抽象基类/接口,而是使用 boost::function/std::function 吗?

    我刚刚了解了 std function 的真正含义以及它的用途 我有一个问题 现在我们基本上有了委托 我们应该在何时何地使用抽象基类 以及何时应该实现通过 std function 对象提供给泛型类的多态性 ABC在C 11中是否受到致命打
  • 双重调度和替代方案

    我正在努力寻找更好的方法来处理一些成长if构造来处理不同类型的类 这些类最终是不同值类型 int DateTime 等 的包装器 并带有一些附加状态信息 因此 这些类之间的主要区别在于它们包含的数据类型 虽然它们实现了泛型接口 但它们也需要
  • 如何在浏览器中跨页面保留 Cognito 身份

    我使用开发人员经过身份验证的身份通过客户端浏览器上的 Cognito 进行身份验证 当我的页面加载 或刷新 时 我希望我的应用程序能够记住身份 只要对象没有过期 我认为它会持续大约一个小时 但是 我不知道如何从 Cognito 检索身份 而
  • 为什么 chown 在 Dockerfile 中不起作用? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我的 Dockerfile 创建一个目录 对其进行 chown 然后列出该目录 该目录仍归 root 所有 这是为什么 这是 Docker
  • GET 链接的 CSRF 保护

    我需要向 Web 应用程序添加 CSRF 保护 问题在于 该应用程序严重依赖链接 即 GET 请求 来对数据库进行更改 链接是使用类生成的 因此我可以轻松地为每个链接添加 CSRF 令牌的额外参数 但是 我知道 GET 请求中的 CSRF
  • DataAdapter.Fill 太慢

    我知道 DataAdapter 存在性能问题 但是有什么方法可以更快地解决这个问题吗 目前 DataAdapter Fill 方法在 3000 条记录上花费 5 6 秒 这对于我的应用程序来说太慢了 如果我删除Fill行并执行 SQL 使用
  • PHP 堆栈实现

    我想构建一个用 PHP 实现的堆栈 最初我有这个代码 class Stack protected stack protected limit public function construct limit 10 initialize the
  • Android 仅在一项活动上全屏?

    我的应用程序有 3 个活动 activity main activity one activity two 我只想全屏显示第一个活动 所以我进行了搜索 发现我必须使用它 View decorView getWindow getDecorVi
  • vagrant 和 ubunutu:pip install jupyter 错误:在 /home/vagrant/.pip/pip.log 中存储失败的调试日志

    我想在 ubuntu 14 04 vagrant 上使用以下命令安装 jupyter sudo pip install jupyter 但是出现错误 你能告诉我如何解决吗 vagrant vagrant ubuntu trusty 64 p
  • 修复 vbs 以启动隐藏系统文件检查器 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有这个vbs 部分脚本由hackoo https stackoverflow com questions 38509033 how
  • 在 Xampp 之后安装 Zend Framework

    我运行的是 Windows 7 并使用 Xampp 我想安装 PHP 的 Zend 框架 但我很难理解如何安装它 我之前使用过Zend框架 但它已经安装在我正在使用的Linux系统上 我正在阅读 Zend 文档 http framework
  • 如何在测试之间重复使用 Capybara 会话?

    我想继续使用相同的会话 我的意思是Rails在不同的会话之间的会话Test Unit使用 Capybara 的集成测试 这Capybara Session对象在所有测试中都是相同的 因为它被重复使用 但是当我在另一个测试中访问另一个页面时
  • RNGestureHandlerModule.attach 手势处理程序有 3 个参数,预期为 2 个

    我正在使用 React Native 构建一个应用程序 并有一个登录 主页和会员屏幕 当用户是管理员时 我让他进入主屏幕 当他是会员时 我让他进入会员屏幕 在主屏幕内 我还有 AddMember 屏幕 因此我在堆栈导航内构建堆栈导航和抽屉导