私は今のところActionCableなしでメッセージアプリケーションを実装しようとしています。すべてのメッセージをマップすると、そのユーザーからの最後のメッセージのみを表示します。ユーザーからすべてのメッセージを表示するのではなく、最後のメッセージのみを表示します。私はそれを達成する方法を知らない。私はid
の代わりにkey
をuser_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>
)
},
このコンポーネントはインデックスページにあり、メッセージのようなアプリを作成しようとしています。 Reactのポインタ? Rails 5はバックエンドとして使用されます。
Warning: flattenChildren(...): Encountered two children with the same key,
.$2
. Child keys must be unique; when two children share a key, only the first child will be used.
バックエンド:
@messages = Message.where(to: current_user.id)
メッセージモデル::id, :to, :user_id, :body
user_id
は/メッセージを作成した送信者です。
:
限り、あなたは、PostgreSQLを使用しているとして、あなたは
distinct on
アプローチを試すことができます。投稿が更新されます。 – SylarどのようなRDBMSを使用していますか(MySQL、Postgresなど) – potashin
PostgreSQLを使用しています – Sylar