2017-11-10 14 views
0

ReduxとサーバーへのWebsocket接続を使用してデータを取得します。データの量は約200k行で、私のアプリにWebsocketメッセージとして1つずつ送られます。行が来たら、私はReduxでそれを保存したいと思います。私はこれを行う方法を知っていて、うまくいきます。どのように状態の変化ごとに反応コンポーネントを更新しないのですか?

私が予期している問題は、単一の行が状態に追加されるたびにビューを更新したくないということです。

アイデアは、たとえば10秒ごとにビューの更新をデバウンスすることです。または、10k行ごとに表示することもできます。

正しく動作させるにはどうすればよいですか?私は詳細な技術的解決策ではなく、説明された概念にもっと興味を持っています。

ありがとうございます!

+0

https://reactjs.org/docs/react-component.html#shouldcomponentupdate – TommyF

+0

[react-virtualized](https://github.com/bvaughn/react-virtualized)を使用すると、現在は画面に表示されています –

答えて

0

状態の変更時にコンポーネントのshouldComponentUpdateを使用して再レンダリングを拒否することができます。このような何か -

class MyComponent extends React.Component { 
    shouldComponentUpdate(nextProps, nextState) { 
    // only re-render when you have data worth 10x rows 
    return nextState.arrayOfRows % 10 === 0; 
    } 

    render() { 
    // render logic here 
    } 
} 
0

1つのオプションは、@RaghudevanShankar's answerのようなshouldComponentUpdateを更新したりすべきではないコンポーネントを制御することです。

また、redux状態を定期的に更新することもできます。たとえば、すべてのメッセージ/行にレコードを追加するのではなく、それらをバッチに結合して、行データの配列でアクションを実行することができます。

関連する問題