注册不起作用,注册未定义错误 React Native

2024-04-24

我刚刚从 Udemy 购买了 React Native 的课程,Stephen Grider 是该课程的作者。所以基本上我是在他打字的时候和他一起打字的。但不幸的是我在跟踪应用程序的注册过程中陷入了错误。每当我在输入电子邮件和密码后单击“注册”按钮时,我的屏幕就会显示此错误。请检查我的代码,如果有任何错误,请告诉我。

Error

注册不是一个函数。 (在注册({电子邮件:电子邮件,密码: 密码})','注册'未定义);

错误截图

注册屏幕.js

import React, { useState, useContext } from 'react';
import { View, StyleSheet } from 'react-native';
import { Text, Button, Input } from 'react-native-elements';
import Spacer from '../components/Spacer';
import { Context as AuthContext } from '../context/AuthContext';

const SignupScreen = ({ navigation }) => {
    const { state, signup } = useContext(AuthContext);
    const [email, setEmail] = useState('');
    const [password, setPassword] = useState('');

    return (
        <View style={styles.container}>
            <Text h3 style={styles.heading}>Sign Up for Tracker</Text>
            <Input
                label='Email'
                value={email}
                onChangeText={setEmail}
                autoCapitalize="none"
                autoCorrect={false}
            />
            <Spacer />
            <Input
                secureTextEntry
                label='Password'
                value={password}
                onChangeText={setPassword}
                autoCapitalize="none"
                autoCorrect={false}
            />
            <Spacer />
            <Spacer>
                <Button
                    title="Sign Up"
                    onPress={() => signup({ email, password })}
                />
            </Spacer>
        </View>
    );
};

SignupScreen.navigationOptions = () => {
    return {
        header: null
    };
};
export default SignupScreen;

AutoContext.js

import createDataContext from "./createDataContext";
import trackerApi from '../api/tracker';

const authReducer = (state, action) => {
    switch (action.type) {
        default:
            return state;
    }
};

const signup = dispatch => {
    return async ({ email, password }) => {
        try {
            const response = await trackerApi.post('/signup', { email, password });
            console.log(response.data);
        } catch (err) {
            console.log(err.message);
        }
    };
};
const signin = dispatch => {
    return ({ email, password }) => {

    };
};
const signout = dispatch => {
    return ({ email, password }) => {

    };
};

export const { Provider, Context } = createDataContext(
    authReducer,
    { signin, signout, signup },
    { isSignedIn: false }
);

创建数据上下文.js

import React, { useReducer } from 'react';

export default (reducer, actions, defaultValue) => {
    const Context = React.createContext();

    const Provider = ({ children }) => {
        const [state, dispatch] = useReducer(reducer, defaultValue);
        const boundActions = {};
        for (let key in boundActions) {
            boundActions[key] = actions[key](dispatch);
        }

        return (
            <Context.Provider value={{ state, ...boundActions }}>
                {children}
            </Context.Provider>
        );
    };
    return { Context, Provider };
};

App.js

import React from 'react';
import { createAppContainer, createSwitchNavigator } from 'react-navigation';
import { createStackNavigator } from 'react-navigation-stack';
import { createBottomTabNavigator } from 'react-navigation-tabs';
import SignupScreen from './src/screens/SignupScreen';
import SigninScreen from './src/screens/SigninScreen';
import TrackListScreen from './src/screens/TrackListScreen';
import TrackDetailScreen from './src/screens/TrackDetailScreen';
import TrackCreateScreen from './src/screens/TrackCreateScreen';
import AccountScreen from './src/screens/AccountScreen';
import { Provider as AuthProvider } from './src/context/AuthContext';

const switchNavigator = createSwitchNavigator({
  loginFlow: createStackNavigator({
    Signup: SignupScreen,
    Signin: SigninScreen
  }),
  mainFlow: createBottomTabNavigator({
    trackListFlow: createStackNavigator({
      TrackList: TrackListScreen,
      TrackDetail: TrackDetailScreen
    }),
    TrackCreate: TrackCreateScreen,
    Account: AccountScreen
  })
});

const App = createAppContainer(switchNavigator);

export default () => {
  return (
    <AuthProvider>
      <App />
    </AuthProvider>
  );
}

我在我的行为中犯了一个错误createDataContext file.

改变这个条件

for (let key in boundActions) {
            boundActions[key] = actions[key](dispatch);
        }

to

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

注册不起作用,注册未定义错误 React Native 的相关文章

随机推荐

  • 是否有内置的 .NET 异常指示非法对象状态?

    如果遇到非法状态 例如 只能调用一次的初始化方法第二次被调用 我应该抛出什么异常 我真的没有看到任何有意义的内置异常 这看起来应该是框架中的东西 我是不是戳错了地方 无效操作异常 http msdn microsoft com en us
  • 使用启动屏幕 (.xib) 会停止缩放

    据我了解 iOS 8 的应用程序应该有一个故事板文件作为启动屏幕而不是图像 我创建了一个非常简单的启动屏幕文件 它具有任意宽度和任意高度 并且有一个纯文本标签 上面写着 占位符 并将其设置为我的启动屏幕 然而 当我尝试在 iPhone 6
  • Postgresql 和 PHP:currval 是在多用户应用程序中检索最后一行插入的 id 的有效方法吗?

    我想知道我用来检索插入到 postgresql 表中的最后一行的 id 的方法是否有效 显然 它可以工作 但是当我有许多用户同时在同一个表中添加行时 引用串行序列 currval 值可能会出现问题 我的实际做法是 pgConnection
  • 使用 -fno-access-control 进行单元测试

    我见过许多在单元测试时访问私有变量的疯狂方法 我见过的最震撼人心的是 define private public 但是 我从未见过有人建议在编译器级别关闭私有变量 我一直以为你不能 我向许多开发人员抱怨说 如果您可以告诉编译器放弃这个文件
  • 找不到 androidx.camera:camera-view

    我正在开发一个基本的自定义相机应用程序 这些是我的依赖 CameraX core library dependency implementation androidx camera camera camera2 camera version
  • Eclipse CDT - 将静态资源文件复制到 bin_dir

    所以我的问题是 我在 Eclipse 3 5 上的 CDT 6 0 中有一个 C 项目 现在有一个静态资源文件 log4cxx 的 properties 需要复制到构建文件夹 该文件在运行时访问以配置 log4cxx 子系统 并且它需要与可
  • 更改 QT 主窗口的标题字体

    我想知道如何更改 QT 主窗口的标题字体 请参阅随附的屏幕截图 我尝试更改样式表等 但它不起作用 我也尝试使用 C 发送消息 但这也有效 SendMessage form gt effectiveWinId WM SETFONT WPARA
  • 使用 Angular 将对象写入 .json 文件?

    我有一个像这样的对象 text Address of Bowlers game center in Chennai entities entity action value business entity intent value fetc
  • 为什么 std::list 上的 Push_back 会更改使用 rbegin 初始化的反向迭代器?

    根据我发现的一些 STL 文档 在 std list 中插入或删除元素不会使迭代器失效 这意味着允许循环列表 从begin to end 然后使用push front添加元素 例如 在下面的代码中 我用元素 a b 和 c 初始化一个列表
  • Slim 框架总是返回 404 错误

    这些天我正在使用纤薄的框架作为我开发 php web api 的最简单的工具 使用这两篇 文章 科恩拉茨 http coenraets org blog 2011 12 restful services with jquery php an
  • 登录失败时生成 Python PXSSH GUI

    当登录失败时 我无法阻止 GUI 的生成 失败并生成 GUI 的简单示例 gt gt gt import pxssh gt gt gt gt gt gt ssh pxssh pxssh gt gt gt ssh force password
  • Android SmsManger 发送报告

    我向多个联系人发送多条消息 并为每个联系人使用以下代码 private void sendSMS String first String last String id String phoneNumber try String messag
  • 如何使 XML 字符串加粗、下划线等?

    http docs fusioncharts com charts contents Styles Font html http docs fusioncharts com charts contents Styles Font html
  • 将 UTC 日期转换为本地日期

    我正在将纪元时间 UTC 格式 转换为如下所示的格式 现在我尝试了不同的答案来转换UTCDate from UTC到当地时间 但我没有得到当地时间 任何帮助 将不胜感激 String epochTime 1436831775043 Date
  • 如何使用 Perl 的 LWP 提取网站的 XML 并保存在文件中?

    如何从网站提取信息 http tv yahoo com listings http tv yahoo com listings 然后创建一个 XML 文件 我想保存它以便稍后解析并使用 JavaScript 显示信息 我对 Perl 很陌生
  • mysql 中临时表的旧代码 TYPE=HEAP 错误

    我有一个可以运行的旧代码 CREATE TEMPORARY TABLE temp tree id INTEGER parent id INTEGER type HEAP 现在我有 mysql 5 并且这段代码不起作用 在内存中创建临时表的正
  • CreateProcess错误=740,请求的操作需要提升

    我有一个定期更新的网络小程序 我最终决定制作一个更新程序 但是 当我用 java 下载更新时 它下载得很好 但是 当我尝试使用以下命令解压 运行更新时Runtime getRuntime exec pathToFile I get Crea
  • 如何使用 Perl 提取 HTML 标题?

    有没有办法使用 Perl 提取 HTML 页面标题 我知道它可以在表单提交期间作为隐藏变量传递 然后以这种方式在 Perl 中检索 但我想知道是否有一种方法可以在不提交的情况下执行此操作 比如说 我有一个这样的 HTML 页面 然后在 Pe
  • 打印的条形码不清晰 (WPF)

    我的应用程序中需要条形码打印模块 但无法弄清楚如何正确打印条形码 看来分辨率太低了 我在用着禅宗条形码 https barcoderender codeplex com 正如您在所附照片中所看到的 顶部条形码是从打印机软件打印的 证明打印机
  • 注册不起作用,注册未定义错误 React Native

    我刚刚从 Udemy 购买了 React Native 的课程 Stephen Grider 是该课程的作者 所以基本上我是在他打字的时候和他一起打字的 但不幸的是我在跟踪应用程序的注册过程中陷入了错误 每当我在输入电子邮件和密码后单击 注