如何正确设置React-native评论系统?

时间:2016-02-12 03:48:02

标签: javascript reactjs react-native redux

所以我对React-native&正在构建一个article feed,允许人们发表评论&查看每个article的评论。目前我能够很好地呈现评论,但我不确定如何使组件render成为用户刚刚提交的评论。

我已经设置好了,所以当用户添加评论时,它会发送到API调用,然后收到JSON对象以回复该评论。然后,我在redux store (reducer) newcomment下的articlecomponent保存该评论。但每次我添加一个新的评论我的整篇文章似乎重新渲染&该评论发布在每个ArticleComponent

以下是我的一个return(的render()函数:

这部分循环浏览特定文章的评论&amp;呈现每个评论。在我的代码中,我将其放入// 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示例可以帮助我解决这个问题,那么如果你可以链接它们会很好,这样我就可以了解一下其他人已经做了。

0 个答案:

没有答案