我的输入由我所在州的值填充.

<input id="flashVars" name="flashVars" type="text" value={settings.flashVarsValue} disabled={isDisabled} onChange={handleChange} />

这是我在Redux的状态.当我在输入中输入一个值时,我必须指定一个onChange函数.这是我的onChange函数:

handleFlashVarsChange(e) {
  let { dispatch } = this.props;

  dispatch( changeFlashVarsValue(e.target.value) );
}

它将状态值flashVarsValue更改为输入值.但当我输入时,它会滞后.我不明白为什么每次更改输入值时都要调用调度.

有没有什么方法可以减少滞后?

我的减速机:

import { ACTIONS } from '../utils/consts';

const initialState = {
  ...
  flashVarsValue: '',
  ...
};

export function formSettings(state = initialState, action = '') {
  switch (action.type) {

    ...

    case ACTIONS.CHANGE_FLASHVARS_VALUE:
      return Object.assign({}, state, {
        flashVarsValue: action.data
      });

    default:
      return state;
  }
}

我的行动:

export function changeFlashVarsValue(data) {
  return {
    type: ACTIONS.CHANGE_FLASHVARS_VALUE,
    data: data
  }
}

非常感谢.

推荐答案

当我编辑一个有一百万行的网格时,我也遇到了类似的问题,所以我所做的就是更改更新逻辑,在你的例子中,只在事件onBlur而不是onChange上调用handleChange.这只会在你失go 焦点时触发更新.但我不知道这对你来说是否是一个满意的解决方案.

Reactjs相关问答推荐

为什么react s useState响应的参数以set开头?

通过React/Esri应用程序中的SON配置时,小部件不会添加层

使用Thattle和Use Effect setTimeout进行搜索有什么不同

单击空白区域时,Reaction Multiple下拉组件不关闭

useEffect不重新渲染

状态改变不会触发重新渲染

如何清除过滤器搜索的状态

onClick 事件处理程序未应用于样式组件

使用 MUI 菜单时添加新 html 元素时布局意外滚动跳转

.populate() 方法在 mongodb 中不起作用

太多的重新渲染 - React 中的无限循环.如何使用React.effect并使用fetch?

React useEffect 依赖项

基于 React/NextJS Timer 的文本淡入/淡出不起作用

如何渲染子路径并触发react 路由父加载器?

onChange in useEffect 的最佳实践

如何处理页面加载时发生的 reactjs 错误?

如何在 React map 函数循环中使用
标签

从一个获取 axios 请求(ReactJS)中删除默认参数

为什么重新渲染不会影响 setTimeout 的计数?

gtag:为什么谷歌分析即使没有被授权也会收集数据