我有一個小問題,當我嘗試使用 Pressable 執行 onLongPress 時。與此相關的函式只呼叫一次。
當我按住可按下時,如何讓它連續洗掉 textInput 上的值?
示例代碼:
<Pressable
style={({ pressed }) => [
styles.deleteStyle,
{
opacity: pressed
? 0.5
: 1,
}]}
onPress={() => { delDigit() }}
onLongPress={() => { delDigit() }}
>
<Icon style={[{ color: '#FD6B89' }]} name="backspace" size={30} />
</Pressable>
提前致謝!
uj5u.com熱心網友回復:
一個非常簡單的解決方案是在按住 Pressable 按鈕時呼叫 onLongPress 函式時使用 setInterval 函式。您可以使用 clearInterval 來停止從 textInput 中洗掉文本。
腳步:
a) 在呼叫 onLongPress 函式時在 Pressable 上呼叫 setInterval 函式,并在每個間隔中從 textInput 中洗掉值的字串的最后一個元素。
onLongPress={() => {
this.timer = setInterval(() => {
this.setState({
email: this.state.email.substring(0,this.state.email.length - 1)
})
},200)
}}
b)要求對可按壓的一個clearInterval功能,當onPressOut函式被呼叫來清除timerInterval中宣告onLongPress
onPressOut={() => {
clearInterval(this.timer)
}}
這是針對您的問題的完整作業解決方案/示例:https : //snack.expo.dev/@gavindmello97/pressable-deletion
希望能幫到你。如果是這樣,請將我的答案標記為正確答案,以便其他人也可以從中受益。如果您在我的代碼中遇到任何問題,請給我留言/評論。很高興幫助你。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/359560.html
上一篇:React-沒有Redux的可擴展架構(MVC DDD方法)
下一篇:如何避免布局與狀態欄重疊?
