所以我对React-native
&正在构建一个article feed
,允许人们发表评论&查看每个article
的评论。目前我能够很好地呈现评论,但我不确定如何使组件render
成为用户刚刚提交的评论。
我已经设置好了,所以当用户添加评论时,它会发送到API
调用,然后收到JSON
对象以回复该评论。然后,我在redux store (reducer)
newcomment
下的articlecomponent
保存该评论。但每次我添加一个新的评论我的整篇文章似乎重新渲染&该评论发布在每个ArticleComponent
。
以下是我的一个return(
的render()函数:
这部分循环浏览特定文章的评论&呈现每个评论。在我的代码中,我将其放入// If first 5 comments from article exist... (5 can change to maybe 10?)
if(comments){
var commentsRendered = comments.map(function(comment, key){
return <CommentComponent comment={comment} key={key}/>
});
}
语句中。
commentsRendered
这是我的回复声明。在这里,我打印出 return (
<View style={styles.container} key={Math.random()}>
<Text>{ user } posted something</Text>
<Text>{ articleText }</Text>
<TextInput
style={styles.input}
onChangeText={
(text) => this.setState({comment: text})
}
value={this.state.comment} />
<TouchableHighlight onPress={ this._postComment.bind(this, articleid) }>
<Text style={{backgroundColor: 'red'}}>
Submit
</Text>
</TouchableHighlight>
{
(comments) &&
<View>{ commentsRendered }</View>
}
{
/* This should only print out on ONE article & not all */
(this.props.newcomment) &&
<View><CommentComponent comment={this.comment.comment} key={Math.random()}/></View>
}
</View>
)
comoponents数组
CommentComponent
在回报中,我正在检查刚刚提交的评论是否在redux商店中。如果它在redux存储区中,则使用(this.props.newcomment) &&
<View><CommentComponent comment={this.comment.comment} key={Math.random()}/></View>
进行渲染。但出于某种原因,当使用新评论&amp;更新redux商店时呈现以下内容 - &gt;
ArticleComponents
它似乎会对所有comment
&amp;不是评论提交的具体内容。如果您提交一条评论&amp;然后提交另一个它取代你做的第一个评论。
我是不是错了?或者我没有做对吗?
只需要添加一些内容 - 如果有var word = "-1";
部分的react-native / redux示例可以帮助我解决这个问题,那么如果你可以链接它们会很好,这样我就可以了解一下其他人已经做了。