常用的情境如文字輸入框,當使用者在搜尋框輸入文字時,使用者每輸入一個字元就會觸發onChange,為了避免重複大量的呼叫API,他會設定一個timer等到一定時間確定使用者沒有在輸入後才去改變狀態或是呼叫API
let timer
const timeout = 500
const onQueryChange = e => {
const newQuery = e.target.value
clearTimeout(timer)
timer = setTimeout(() => setQuery(newQuery), timeout)
}
return
<>
<TextField
color="success"
placeholder="Search PizzaFlix"
sx={{
width: '100%',
}}
autoFocus
onChange={onQueryChange}
/>
</>