Я пытаюсь отобразить дочерний компонент в onPressсобытии, console.info работает нормально, но компоненты в функции возврата не работают.
Parent component:
onPress = (img,title,content) => {
this.setState({
show:true,
img:img,
title:title,
content:content
})
render() {
return (
<View style = {styles.container}>
<FlatList
data = {this.state.data}
renderItem = {({item}) => (
<TouchableOpacity
onPress = {() => this.onPress(item.urlToImage,item.title,item.content)}
>
<View style = {styles.picsCont}>
<Image style = {styles.pics} source = {{uri: item.urlToImage}}/>
<Text style = {{color:'white', fontSize: 15, fontWeight: '700', paddingTop:10}}>
{item.title}
</Text>
</View>
</TouchableOpacity>
)}
keyExtractor = {item => item.title}
/>
{this.state.show ?
<NewsView
img = {this.state.img}
title = {this.state.title}
content = {this.state.content}
/> :
null
}
</View>
);
}
}
Child Component:
export default class NewsView extends Component {
render() {
console.info(this.props.img)
return (
<View style = {styles.container}>
<Image style = {styles.picsCont} source = {{uri:this.props.img}} />
<Text style = {styles.news}>{this.props.title}</Text>
<Text style = {styles.news}>{this.props.content}</Text>
</View>
)
}
}
Спасибо за помощь...!





Это могут быть стили. Если у вашего дочернего компонента есть position:'absolute', возможно, он находится под вашим родительским компонентом, вы можете попробовать включить представление дочернего компонента zIndex:10
Возможно, вы просто неправильно скопировали-вставили, но закрывающая скобка
}метода onPress() отсутствует и у вас есть лишняя в конце рендера. Таким образом, render() находится внутри onPress().