我使用Redux和Websocket连接到服务器来检索数据。数据量大约是200k行,作为Websocket消息一个接一个地进入我的应用程序。一旦有一行,我想将它保存在Redux的状态,我知道该怎么做,它运行得很好。
我预见的问题是,每次将一行添加到状态时,我都不想更新视图。
我们的想法是每次更新一个视图,例如10秒,或者每行10k行。
我应该如何使其正常工作?我对所描述的概念更感兴趣,而不是详细的技术解决方案。
谢谢!
答案 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状态。例如,您可以将它们组合成批处理,然后使用行数据数组运行操作,而不是在每个消息/行上添加记录。