Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.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
Javascript 输入元素上的去抖动动作';Hyperapp中的s输入事件_Javascript_Hyperapp - Fatal编程技术网

Javascript 输入元素上的去抖动动作';Hyperapp中的s输入事件

Javascript 输入元素上的去抖动动作';Hyperapp中的s输入事件,javascript,hyperapp,Javascript,Hyperapp,当用户在搜索字段中键入内容时,我正在尝试使用Hyperapp组件中的一个操作来消除影响。虽然操作被延迟,但它们似乎在排队,并且在间隔(500 ms)过去后将单独执行,而不是完全跳过 换句话说:如果用户在500毫秒内输入“foo”,它将执行三次,每个单独的函数调用延迟500毫秒,而不是只执行一次 我已经在非Hyperapp环境中多次使用debounce,所以感觉我在Hyperapp的工作方式中遗漏了一些东西 导出默认值({state,actions})=>{ const debouncedFetc

当用户在搜索字段中键入内容时,我正在尝试使用Hyperapp组件中的一个操作来消除影响。虽然操作被延迟,但它们似乎在排队,并且在间隔(500 ms)过去后将单独执行,而不是完全跳过

换句话说:如果用户在500毫秒内输入“foo”,它将执行三次,每个单独的函数调用延迟500毫秒,而不是只执行一次

我已经在非Hyperapp环境中多次使用debounce,所以感觉我在Hyperapp的工作方式中遗漏了一些东西

导出默认值({state,actions})=>{
const debouncedFetchResults=debounce(actions.fetchResults,500);
返回(
{
//Set`state.searchPhrase`
actions.SetSearchPhase(即目标值);
//使用`state.searchPhrase'进行搜索`
去BouncedFetchResults();
}
} />
);
};

我最终用以下方法解决了这个问题:

const debouncedFetchResults = debounce(fn => fn(), 500);

export default ({ state, actions }) => (
  <input
    type="search"
    name="search"
    value={state.searchPhrase}
    oninput={
      (e) => {
        // Set `state.searchPhrase`
        actions.setSearchPhrase(e.target.value);

        // Search using `state.searchPhrase`
        debouncedFetchResults(actions.fetchResults);
      }
    } />
);
const debouncedfetchfresults=debounce(fn=>fn(),500);
导出默认值({state,actions})=>(
{
//Set`state.searchPhrase`
actions.SetSearchPhase(即目标值);
//使用`state.searchPhrase'进行搜索`
取消BouncedFetchResults(actions.fetchResults);
}
} />
);

进一步来看,似乎在每个输入事件上都重新声明了
去BouncedFetchResults
函数。我不知道如何或为什么。组件始终可见。