Проблема
В ваших <Image
методах ширины и высоты вы используете width
и height
без предыдущих объявлений.
Решение
Измените ваши <Image
методы width
и height
, чтобы использовать значения из состояния компонента, как показано ниже:
<Image
style={{
width: this.state.width,
height: this.state.height,
alignItems: 'center',
borderRadius: 50,
marginLeft: 'auto',
marginRight: 'auto',
marginTop: 40,
}}
resizeMethod="resize"
onError={(e) => console.log(e.nativeEvent.error)}
source={{ uri: this.props.imgLink }} />
Бонус
Вам не нужновызовите thi.setState () несколько раз. Вы можете изменить функцию fetchData следующим образом:
fetchData = data => {
var foo = data.items[0].snippet.thumbnails.default.url;
this.setState({
imgLink: foo,
width: data.items[0].snippet.thumbnails.default.width,
height: data.items[0].snippet.thumbnails.default.height
});
}
Надеюсь, это поможет!