2016-10-11 59 views

回答

1

在您的組件狀態中,存儲上次收到滾動事件的時間。在您的渲染方法中,檢查最後一次滾動事件發生的時間,並確定您的按鈕是否應該再次可見。

粗糙例如:

// Observe the scroll events. 
<ScrollView onScroll={(e) => { 
    this.setState({lastScroll: new Date()}) 
}} /> 

// Check if the last scroll happened later than 300ms ago. 
if (this.state.lastScroll.getTime() < (new Date()).getTime() - 300) { 
    // Render the button. 
} 
+0

高招。 – kayla

+0

我嘗試了這一點,事實證明,雖然這會使按鈕在滾動後300毫秒消失,但沒有任何邏輯可以使其恢復,即在停止滾動以使按鈕再次出現後定時器不會重置。你有什麼建議嗎? – kayla

+0

在這種情況下,我會建議使用'setTimeout',在300ms後將'setState({displayButton:true})',並且每次收到滾動事件時都會取消超時,並立即重新初始化它。您必須添加一些邏輯來初始顯示按鈕並將其隱藏在第一個滾動條上。 – FMCorz