javascript - React Native - 如何处理 TextInput onChangeText 事件以在执行函数之前等待?

标签 javascript react-native textinput

我在 React native 中有一个使用文本输入的搜索功能,但搜索需要调用 API,所以我想在用户完成输入 2 秒后让 onChangeText 运行,

我尝试过使用 setIntervalsetTimeout 但这些都不起作用,

这是我试过的代码:

<TextInput
  placeholder="search"
  onChangeText={(text) => {
    setTimeout(() => {
      console.log(text)
      console.log("Kepanggil TimeOUTNYAA")
      params.onSearchText(text)
    }, 2000);
  }
}

//function onSearchText

onSearchText(searchText){
  this.setState({text:searchText},()=>{
    this._loadMore() // here's a function to call the API
  })
}

实际行为:

当我在 TextInput 中输入 am 时,日志显示:

Actual

预期行为:

我希望日志显示我 am not aam

有可能吗?

最佳答案

你应该在设置新的之前清除旧的超时

<TextInput
    placeholder="search"
    onChangeText={(text) => {
        if(this.searchWaiting)
            clearTimeout(this.searchWaiting);
        this.searchWaiting = setTimeout(() => {
            this.searchWaiting = null;
            console.log(text);
            console.log("Kepanggil TimeOUTNYAA")
            params.onSearchText(text)
        }, 2000);
    }}
/>

关于javascript - React Native - 如何处理 TextInput onChangeText 事件以在执行函数之前等待?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51131228/

相关文章:

javascript - Svelte:修改等待引用?

javascript - slider 中的多个帖子显示并经过优化

javascript - React-native 和 AXIOS 上的条件渲染问题

javascript - React Native - 通过 onPress 传递字符串或变量

javascript - react native textInput scrollView android

shiny - 如何限制Shiny应用程序中textInput接受的字符数

Javascript:如何在服务器端(后端)执行?

ios - 如何在 React Native 中的 Google map 上实现可拖动、可调整大小的多边形?

jquery - 如何设置显示在文本输入上的弹出元素的样式?

javascript - 平滑滚动链接与 fancybox 冲突,将 href 更改为类或 id?