2017-12-07 6 views
1

私はコレクションである小道具を持つReactJSコンポーネントを持っています。ReactJSコンポーネントのインバウンド・ソープをソートする方法は?

このコレクションが常にコンポーネントに対してソートされていることを確認します。

ソートロジックはどこに配置しますか?

JSXの内部に配置すると、すべてのレンダリングで実行されますが、これは非効率的です。

class MyComponent { 
    render() { 
     const { collection } = this.props; // I want collection to stay sorted 
     return <div>collection.map(i => <div>i</div>)</div> 
    } 
} 
+0

あなたの小道具を割り当てているところはどこでもなぜそれをソートしていませんか? – timothyclifford

+0

ありがとうございます。あなたは正しいです。私は今コレクションのインデントに基づいてmapStateToPropsにソートロジックを追加しようとしています。 – Ben

答えて

1

あなたがコンポーネントに送信する前に、それを並べ替えることはできませんいくつかの理由で、componentWillReceivePropsはこのために良いでしょう場合:

class MyComponent { 
    this.sorted = []; 

    componentWillReceiveProps(nextProps) { 
     // Here you can check if the collection has changed 
     // and skip the sort if it hasn't. 
     this.sorted = sort(nextProps.collection); 
    } 

    render() {...} 
} 
関連する問題