Ошибка вывода, подобная этой =>
TypeError: TypeError: undefined не является объектом (оценивает '_this.state.userInfo.picture.data')
там я просто хочу передатьДанные из фейсбука на мой взгляд реагируют на родные.он говорит, что undefined не является объектом, как это исправить?
Заранее спасибо:)
import React, {Component} from 'Reaction';import {Text, TouchableOpacity, ScrollView, View, StyleSheet, Button, Alert, Image} из реактивной системы;import Expo, {Constants} из 'expo';
класс экспорта по умолчанию HomeScreen расширяет компонент {
constructor(props){
super(props);
this.state = { userInfo: null }
}
async logInFB() {
try {
const {
type,
token,
expires,
permissions,
declinedPermissions,
} = await Expo.Facebook.logInWithReadPermissionsAsync('214751749451960', {
permissions: ['public_profile'],
});
if (type === 'success') {
// Get the user's name using Facebook's Graph API
const response = await fetch(`https://graph.facebook.com/me?access_token=${token}&fields=id.name.picture.type(large)`);
const userInfo = await response.json();
this.setState({ userInfo });
Alert.alert('Logged in!', `Hi ${(await response.json()).name}!`);
} else {
// type === 'cancel'
}
} catch ({ message }) {
alert(`Facebook Login Error: ${message}`);
}
}
_renderUserInfo = () => {
return(
<View style={{ alignItems:'center' }}>
<Image
source={{ uri: this.state.userInfo.picture.data.url}}
style={{width:100, height:100, borderRadius:50}}
/>
<Text style={{ fontSize:20 }}>
{ this.state.userInfo.name }
</Text>
<Text>ID: { this.state.userInfo.id }</Text>
</View>
);
}
render(){
return(
<View style={styles.container}>
<Text>welcome to my apps!</Text>
{ !this.state.userInfo ? (<Button title="Connect with facebook" onPress={this.logInFB.bind(this)}/>) : (this._renderUserInfo())}
</View>
);
}
}
const styles = StyleSheet.create ({container:{flex: 1, justifyContent: 'center', alignItems: 'center', paddingTop: Constants.statusBarHeight, backgroundColor: '# ecf0f1',}, абзац: {margin: 24, fontSize: 18, fontWeight: 'bold', textAlign: 'center', цвет: '# 34495e',},});