未捕获的类型错误:无法读取未定义的属性‘_’
2021-08-13
3599
我又遇到了一个无法解决的问题! 我收到了这个错误,但我不太明白。
打开 DOM 并阅读整个错误,并在 Google 上花费了大量时间后,我得到的唯一信息是,错误似乎是由这行代码触发的:
const [user, setUser] = useState(null)
这是此行所在的代码:
import React, { useState, useEffect } from 'react';
import { StyleSheet, View, Text, Image, FlatList } from 'react-native';
import { connect } from 'react-redux';
import firebase from 'firebase';
require('firebase/firestore');
function Profile(props) {
const [userPosts, setUserPosts] = useState([]);
const [user, setUser] = useState(null);
useEffect(() => {
const { currentUser, posts } = props;
console.log({ currentUser, posts });
if (props.route.params.uid === firebase.auth().currentUser.uid) {
setUser(currentUser);
setUserPosts(posts);
}
});
if (user === null) {
return <View />;
}
return (
<View style={styles.container}>
<View style={styles.containerInfo}>
<Text> {user.name} </Text>
<Text> {user.email} </Text>
</View>
<View style={styles.containerGallery}>
<FlatList
numColumns={3}
horizontal={false}
data={userPosts}
renderItem={({ item }) => (
<View style={styles.containerImage}>
<Image style={styles.image} source={{ uri: item.downloadURL }} />
</View>
)}
/>
</View>
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
marginTop: 40,
},
containerInfo: {
margin: 20,
},
containerGallery: {
flex: 1,
},
containerImage: {
flex: 1 / 3,
},
image: {
flex: 1,
aspectRatio: 1 / 1,
},
});
const mapStateToProps = (store) => ({
currentUser: store.userState.currentUser,
posts: store.userState.posts,
});
export default connect(mapStateToProps, null)(Profile);
我正在制作 Instagram 克隆,如果您需要我拥有的任何其他代码,请告诉我,因为我不知道你们都需要什么来帮助我。
2个回答
此错误由此行代码触发
setUser(currentUser);
currentUser 不是一个对象而是一个类,这触发了此错误。(这就是我的理解)
因此我用以下内容替换了它:
169357188​​
现在它运行完美!
chin14
2021-08-19
请使用可选链接运算符
if (props.route?.params?.uid === firebase?.auth()?.currentUser?.uid) {
setUser(currentUser);
setUserPosts(posts);
}
Kanti vekariya
2021-08-13