2017-03-01 8 views
4

私は過去に発生した「ミーティング」のリストをレンダリングする反応コンポーネントを持っています。日付順にソートする

私は以前の各会議を並べ替えるようにして、もっと最近に過去に発生したものが一番上になるようにしています。

私は過去に会議が行われたかどうか確認しています。

render(){ 
let past_meetings = this.store.meetings.map((meeting, i) => { 
    if (meeting.scheduled_for < moment.utc(new Date()).format()){ 
    return (<MeetingItem meeting={meeting} key={`meeting-${meeting.id}`} />) 
    } else { 
    return ; 
    } 
}) 

return(
    <div className=""> 
    <div className=""> 
     <h3 className="">Past Meetings</h3> 
     <div className="" > 
     {past_meetings} 
     </div> 
    </div> 

    </div> 
) 
} 

現在の会合として示されています:これは私のレンダリング方法がされて

(これは正常に動作している)、それは上部の過去、ショーでさらに起こった場合。

私の目標は、次のように表示することです。最近発生した場合は、上部に表示します。

let sorted_meetings = _.sortBy(past_meetings, function(e){ 
return - (new Date(e.scheduled_for)) 
} 

いいえ成功:

はlodashの.sortByと、この()のようなものを試してみました。

meeting.scheduled_for 
// returns 2017-03-03T03:33:00.000Z 

予定されているが、あまり運がないとも比較しようとしました。

これは_で行うことができますか?または他の方法ですか?

+0

を降順で会議をソートするsort()reverse()を使用することができますか? – Nicholas

+0

@Nicholas^4.17.4 – JessiAbrams

+0

降順のソートが必要です。 使用しているLoadashのバージョンがわかりません。あなたは受け入れられた答えでオプションを試すことができます。 [このリンク。](http://stackoverflow.com/questions/22928841/lodash-multi-column-sortby-descending/29082994#29082994) – Nicholas

答えて

4

あなたが使用しているloadashのバージョン順

var sorted_meetings = meetings.sort((a,b) => { 
    return new Date(a.scheduled_for).getTime() - 
     new Date(b.scheduled_for).getTime() 
}).reverse(); 
+0

ありがとう、これは役に立ちました。私が今問題を抱えているのは、実際には "sorted_meetings"が定義されていないので、renderメソッドのリターンの中でこれを使用しているということです。 – JessiAbrams

+1

@JessiAbrams新しい質問を開くと、私は見ていきます – FuzzyTree

関連する問題