Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何在React Redux中实时发送数据而不挂起我的UI?_Reactjs_Sockets_Websocket_Redux - Fatal编程技术网

Reactjs 如何在React Redux中实时发送数据而不挂起我的UI?

Reactjs 如何在React Redux中实时发送数据而不挂起我的UI?,reactjs,sockets,websocket,redux,Reactjs,Sockets,Websocket,Redux,我是react redux的新手 场景:我有一个包含大量文本字段的表单。在字段中输入值时,会发生以下过程: 字段值=>套接字.发出数据=>套接字.在=>上调用的动作=>重新执行状态更新=>ui更新 没有保存按钮 问题在于,我觉得在redux状态下更新单个值的周期很长 当UI重新呈现(作为redux更新)时,表单将挂起2-3秒。因此,在此时间间隔内,我无法在其他字段中输入值 在发送实时数据时,是否有一种简单的方法或优化方法来更新我的UI?如果不查看您的代码,就很难提出确切的更改建议。但即便如此,情

我是react redux的新手

场景:我有一个包含大量文本字段的表单。在字段中输入值时,会发生以下过程:

字段值=>套接字.发出数据=>套接字.在=>上调用的动作=>重新执行状态更新=>ui更新

没有保存按钮

问题在于,我觉得在redux状态下更新单个值的周期很长

当UI重新呈现(作为redux更新)时,表单将挂起2-3秒。因此,在此时间间隔内,我无法在其他字段中输入值


在发送实时数据时,是否有一种简单的方法或优化方法来更新我的UI?

如果不查看您的代码,就很难提出确切的更改建议。但即便如此,情况依然如此

  • 使用
    state
    存储即时更改:所有文本字段都应绑定到
    state
    字段(json对象),该字段将由每个文本字段上的
    onChange
    处理程序更新。此
    状态
    字段应从传递到表单的
    道具
    接收初始表单数据
  • 状态
    字段与初始数据进行比较,以确定是否发生了更改:将
    状态
    字段与作为
    道具传递的初始数据进行比较,以确定是否发生了任何更改
  • 延迟更新redux状态的调用:当
    状态
    字段和
    道具
    初始状态不同时,使用类似于lo dash的
    去盎司
    的函数以设定的间隔或页面导航事件更新redux状态

  • 这将避免不必要的重新呈现UI,并有望解决UI冻结的问题。希望这有帮助

    同意;在这里,我将采用乐观的方法,在组件状态或应用程序状态中本地存储突变

    如果传入的props没有嵌套得很深,您还可以使用React.PureComponent,它对nextProps和currentProps进行了一个粗略的比较,以确定是否需要重新渲染