私は自分のブログにコメントシステムを持っています。コメントはWebSocketsを介してライブで更新されます。コメントは更新されますが、オーナーはコメントを編集できる必要があります。インプレース編集を有効にしたい(つまり、コメントはテキストボックスと保存/破棄ボタンに置き換えられる)。 My Reactアプリはソケットイベントに登録し、コンポーネント状態のcomments
配列を変更します。これは、ユーザーがコメントを編集している間に新しいものが入った場合、編集が残酷に停止することを意味します。 1.ユーザがコメントを編集している間に、ライブアップデートを停止する(つまり、ソケットイベントを一時的に無視する)。 2.コメントを更新し続けますが、コメントはスクロールしたままにしておきます。編集者(私は対処方法がわかりません)ユーザーがコメントを編集中にライブアップデートを停止しますか?
ユーザーがコメントを編集している間にライブアップデートを止めるのは馬鹿だと思うので、私はあなたに質問しています。コメントを更新していますか?
私のアプリケーションの構造についての詳細:私はstate
配列comments
を含むコンポーネント<PostComments />
を持って
を。その配列は、<Comment />
の束のようにレンダリングされている:
renderComments =() => {
const { comments } = this.state;
return comments.map(comment => {
return (
<Comment key={comment['comment_id']} data={comment} />
);
});
};
<Comment />
コンポーネントがレンダリングする静的なデータを取得する(すなわち、標準的な形状
export const commentDataType = React.PropTypes.shape({
comment_id: React.PropTypes.number.isRequired,
user_info: React.PropTypes.shape({
preferred_name: React.PropTypes.string.isRequired,
profile_picture: React.PropTypes.string.isRequired,
}).isRequired,
post_timestamp: React.PropTypes.number.isRequired,
comment_text: React.PropTypes.string.isRequired,
});
そして、このことの種類を持つオブジェクトありがとうございます。 !
理想的には、編集中であってもライブ更新コメントを残しておけば、更新しないでください。 –
私は 'comments'に' Array.filter'のようなことをして、それをまだ保つべきでしょうか? – Victor
理想的には、編集中のコピーを作成し、代わりにそのコピーを編集します。そうすることで、変更を簡単に破棄することができ、更新がユーザーが現在行っていることを妨げることはありません。1つのコメントを更新できるのは1人のユーザーだけです。 –