如何等待带有钩子的身份验证对象? (React Native中的MongoDB Stitch)

问题描述 投票:0回答:1

我正在使用React Native来构建依赖MongoDB Stitch进行身份验证的应用程序。通常,由于我在下面的代码行中使用client对象尚未加载该应用程序而导致崩溃。我得到的错误是臭名昭著的TypeError:undefined is a object跟着evaluating'client.auth.user'

import React from 'react';
import { View, Text } from 'react-native';
import { Stitch } from 'mongodb-stitch-react-native-sdk';

const APP_ID = '<my app ID>';

const client = Stitch.hasAppClient(APP_ID)
    ? Stitch.getAppClient(APP_ID)
    : Stitch.initializeDefaultAppClient(APP_ID);

const { user } = client.auth;

const Home = () => {
    return (
        <View style={styles.home}>
            <Text>HOME</Text>
            <Text>Hi {user.profile.data.email}</Text>
        </View>
    );
};

export default Home;

const styles = {
    home: {
        flex: 1,
        backgroundColor: '#fff',
        alignItems: 'center',
        justifyContent: 'center'
    }
};

MongoDB Stitch NPM软件包随附的示例使用componentDidMount(请参见here),但是我试图使用Hooks使其工作。我已经尝试过useEffect,一堆if语句,async / await,并用useState ...将该对象置于状态。

任何建议将不胜感激!

我正在使用React Native来构建依赖MongoDB Stitch进行身份验证的应用程序。通常,应用程序崩溃是因为当我在...

mongodb react-native react-hooks mongodb-stitch
1个回答
0
投票

是的,您可以使用useEffect钩子实例化客户端并获取用户信息。

© www.soinside.com 2019 - 2024. All rights reserved.