Javascript 如何在我用React Native和Apollo构建的应用程序中从我的帖子列表中呈现一篇帖子?
所以我正在尝试构建一个类似于博客的应用程序。我不知道如何呈现被选中阅读的一篇文章Javascript 如何在我用React Native和Apollo构建的应用程序中从我的帖子列表中呈现一篇帖子?,javascript,react-native,blogs,apollo,Javascript,React Native,Blogs,Apollo,所以我正在尝试构建一个类似于博客的应用程序。我不知道如何呈现被选中阅读的一篇文章 <TouchableWithoutFeedback onPress={ () => this.props.navigation.navigate('Unique')}> <Text style={styles.titleStyle}>{post.title}</Text> </TouchableWithoutFeedback> this.props.nav
<TouchableWithoutFeedback onPress={ () => this.props.navigation.navigate('Unique')}>
<Text style={styles.titleStyle}>{post.title}</Text>
</TouchableWithoutFeedback>
this.props.navigation.navigate('Unique')}>
{post.title}
^这是将我导航到我单击的帖子的事件(不确定如何传递其道具或id)
这是我重定向到的组件:
class Page extends Component {
render(){
return(
<ScrollView>
<Query query={UniqueNews}>
{({data, loading})=> {
if(loading) return <Text>Loading</Text>;
const {posts} = data;
return posts.map(post=>
<OneNews key={post.id} post={post} />
)
}}
</Query>
</ScrollView>
)
}
}
const UniqueNews = gql `query{
posts{
title
author
date
id
body
image{
url
}
}
}
`
类页扩展组件{
render(){
返回(
{({data,loading})=>{
如果(装载)返回装载;
const{posts}=数据;
返回posts.map(post=>
)
}}
)
}
}
const UniqueNews=gql`query{
职位{
标题
作者
日期
身份证件
身体
形象{
网址
}
}
}
`
OneNews=
<View style={styles.containerStyle}>
<View style={styles.cardSectionStyle}>
<Text>{title}</Text>
<Text>{author}</Text>
<Text>{body}</Text>
</View>
</View>
{title}
{作者}
{body}
当我渲染或导航到该屏幕时,将显示每个帖子,而不是我点击的帖子。我该如何设置?我期望的输出是只看到其中一个帖子(通过点击选中的帖子)并进行渲染。谢谢我找到了解决这个问题的方法: 首先,我将在导航到唯一组件时传递一个参数:
<TouchableWithoutFeedback onPress={ () => this.props.navigation.navigate('Unique', {id: post.id})}>
<Text style={styles.titleStyle}>{post.title}</Text>
</TouchableWithoutFeedback>
this.props.navigation.navigate('Unique',{id:post.id})}>
{post.title}
之后,我将在该唯一组件内进行条件渲染:
<ScrollView>
<Query query={singleNews}>
{({data, loading})=> {
if(loading) return <Text>Loading</Text>;
const {posts} = data;
return posts.map(post=>
{if(this.props.navigation.state.params.id===post.id)
return <View>
<OneNews key={post.id} post={post} />
</View>}
)}}
</Query>
</ScrollView>
{({data,loading})=>{
如果(装载)返回装载;
const{posts}=数据;
返回posts.map(post=>
{if(this.props.navigation.state.params.id==post.id)
返回
}
)}}
就这样