Я использую React Native для создания приложения, которое использует MongoDB Stitch для аутентификации. Чаще всего приложение вылетает из-за того, что объект client еще не загружен, когда я использую его в следующей строке кода. Ошибка, которую я получаю, является печально известной TypeError: undefined не является объектом , за которым следует оценка '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 (см. здесь ), но я пытаюсь сделать это с помощью хуков. Я пробовал useEffect , набор if операторов, async / await , перевод объекта в состояние с помощью useState ; Не повезло.