在React迭代中显示最后一个子节点

时间:2016-06-16 14:33:10

标签: sql ruby-on-rails postgresql activerecord ruby-on-rails-5

我正在尝试实现一个消息应用,暂时没有ActionCable。当我映射所有消息时,我只想显示来自该用户的最后一条消息:我只显示最后一条消息,而不是显示来自用户的所有消息。我不知道如何实现这一目标。我以为我可以将user_id设置为id而不是_messagesRender: function(){ var messages = this.props.message.map( function(m, i){ return( <li key={m.user_id}>{m.body}</li> ) }); return( <div>{messages.length === 0 ? "No messages" : messages}</div> ) },

.$2

此组件位于索引页面上,我正在尝试创建类似消息的应用程序。任何与React的指针? Rails 5用作后端。

  

警告:flattenChildren(...):遇到两个具有相同密钥的孩子@messages = Message.where(to: current_user.id) 。子键必须是唯一的;当两个孩子共用一把钥匙时,只会使用第一个孩子。

后端:

:id, :to, :user_id, :body

消息模型:user_id

setUpActionBar(mIsDualPane, catIndex); 是发送/创建消息的人。

1 个答案:

答案 0 :(得分:2)

您可以尝试以下操作:

created_at

这应该给出每个user_id的最后一条消息(distinct on}。

只要您使用Postgresql,就可以尝试Message.where(to: current_user.id) .order(user_id: :asc, created_at: :desc) .select('distinct on (user_id) *') 方法:

someSecondaryViewController.view.alpha = 0.0
self.view.addSubview(someSecondaryViewController.view)
UIView.animateWithDuration(0.2, animations: { self.someSecondaryViewController.view.alpha = 1.0 })