使用去抖动器将输入发送到 api 导致最后的字母类型无法保存

问题描述 投票:0回答:0

我有一个输入使用 lodash debouncer 在文本输入字段上调用我的 api。但由于某种原因,它总是缺少最后一个输入值。

这是我的设置:


const debounceChanges = debounce(handler => {
  handler();
}, 300);

const myComponent = () => {

 const handleSaveText = async () => {
    try {
      await postPipelineItemUpdate(saveData);
      fetchPipelineItems();
    } catch (err) {
      console.log(err);
    }
  };

 const handleInput = (row, field, newValue, index) => {
    const nextStep = row.nextStep ? row.nextStep : '';
      setSaveData({ [field]: newValue});
    
    debounceChanges(handleSaveText);
  };

 return(
  <TextField
   id="blockerNote"
   value={saveData && saveData.id === row.id ? saveData.blocker_note : row[column.id]}
   onChange={e => handleInput(row, column.id, e.target.value, index)}
   InputProps={{ classes }}
   multiline
   />
  
  )

}

我的 debouncer 正在调用 api 处理程序,但我不明白为什么它不保存每个字符?我试图调整调用处理程序所需的时间,这是我能想到为什么它不起作用的唯一原因。

javascript reactjs input lodash debouncing
© www.soinside.com 2019 - 2024. All rights reserved.