使用套接字监听服务器; Redux存储会不断更新数千条数据记录。存储的更新仅需几秒钟,数千个对象通过操作被调度。但是,使用redux connect函数通过mapStateToProps将状态映射到我的组件似乎使状态更改排队,并以每秒约7-10条记录的速度更新组件的状态。这意味着React组件需要花费很长时间才能渲染。有什么解决方案可以加快速度吗?另外,确切的数据量将始终在变化,并且没有固定的量。
这是我的组成部分:
class TestComponent extends Component {
state = {};
componentDidMount() {
this.props.connectToSocket();
}
render() {
const { classes, width, people, vehicles, incidents, locations } = this.props;
return (
<div>
Hello
</div>
);
}
}
TestComponent.propTypes = {
classes: PropTypes.object.isRequired
};
const mapStateToProps = state => {
console.log(state);
return {
people: state.live.people,
vehicles: state.live.vehicles,
incidents: state.live.incidents,
locations: state.live.locations
}
};
const mapDispatchToProps = {
connectToSocket: connectToSocket
};
export default connect(mapStateToProps,mapDispatchToProps(TestComponent));
初始化套接字的操作在componentDidMount()函数中执行。然后,我可以看到控制台中正在打印的状态,但是,它每秒会打印大约7-10条新记录的每个更新。由于在很短的时间内对存储进行了5000多次更新,因此将redux存储映射到组件的props花费的时间要长得多,并且渲染组件要花费5分钟以上的时间。
有什么想法吗?
答案 0 :(得分:0)
通常,这里的答案涉及某种形式的批处理:
有关进一步的想法和链接,请参见Redux FAQ entry on reducing the number of store update events。