为什么我的应用程序只显示加载屏幕?当我运行我的应用程序比它只加载,不显示其他屏幕,并显示警告
'WARN可能未处理的承诺拒绝(id:0):类型错误:未定义为
我认为这段代码有问题
import React, { useEffect } from 'react';
import { View, ActivityIndicator, StyleSheet} from 'react-native';
import { AsyncStorage } from '@react-native-async-storage/async-storage';
import { useDispatch } from 'react-redux';
import Colors from '../constants/Colors';
import * as authActions from '../store/actions/auth';
const StartupScreen = props => {
const dispatch = useDispatch();
useEffect(() => {
const tryLogin = async () => {
const userData = await AsyncStorage.getItem('userData');
if (!userData) {
// props.navigation.navigate('Auth');
dispatch(authActions.setDidTryAutoLogin());
return;
}
const transformedData = JSON.parse(userData);
const { token, user } = transformedData;
// props.navigation.navigate('Shop');
dispatch(authActions.authenticate(user, token));
};
tryLogin();
}, [dispatch])
return (
<View style={styles.screen}>
<ActivityIndicator size="large" color={Colors.primary} />
</View>
);
};
const styles = StyleSheet.create({
screen: {
flex: 1,
justifyContent: 'center',
alignItems: 'center'
}
});
export default StartupScreen;
1条答案
按热度按时间a5g8bdjr1#
您导入的单据显示有误。
这一点:
应该是
基本上,您尝试对
{AsyncStorage}
执行的操作是导入名为AsyncStorage
的导出代码的“一部分”。这就是为什么错误显示为:_asyncStorage.AsyncStorage.getItem')
(asyncStorage
被提到了两次),并且您需要将整个对象从包中取出。