如何在每次状态更改时不更新React组件?

时间:2017-11-10 09:19:15

标签: reactjs websocket redux

我使用Redux和Websocket连接到服务器来检索数据。数据量大约是200k行,作为Websocket消息一个接一个地进入我的应用程序。一旦有一行,我想将它保存在Redux的状态,我知道该怎么做,它运行得很好。

我预见的问题是,每次将一行添加到状态时,我都不想更新视图。

我们的想法是每次更新一个视图,例如10秒,或者每行10k行。

我应该如何使其正常工作?我对所描述的概念更感兴趣,而不是详细的技术解决方案。

谢谢!

2 个答案:

答案 0 :(得分: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 
  }
}

答案 1 :(得分:0)

一个选项是使用shouldComponentUpdate @RaghudevanShankar's answer来控制组件是否应该更新。

另一种选择可以是定期更新redux状态。例如,您可以将它们组合成批处理,然后使用行数据数组运行操作,而不是在每个消息/行上添加记录。