2016-10-11 56 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