我正在使用Redux开发React Native App,我想做一个简单的任务: 根据ScrollView的Y位置折叠或关闭其他组件的搜索栏。
我们有一个ListView:
<ScrollView style={styles.scene} onScroll={(event) => {this.onScroll(event)}}>
和这个功能:
onScroll(event) {
var currentOffset = event.nativeEvent.contentOffset.y;
var direction = currentOffset > this.offset ? 'down' : 'up';
this.offset = currentOffset;
if(currentOffset == 0 && !this.props.isCerca && this.props.textInputTextShop != ""){
this.props.setCerca(true);
}else{
if(currentOffset >50 && this.props.isCerca) this.props.setCerca(false);
}
}
主要问题是: 当我们在Y(ListView的顶部)上达到0时,搜索栏将被关闭但是如果我们将手指放在屏幕上,则该事件将被激活很多次。当我们调用函数this.props.setCerca(false); reducer需要时间来修改boolean this.props.isCerca,这样搜索栏就会多次折叠,造成奇怪的行为。
如何使用redux立即设置此布尔值,以便在不调用reducer的情况下返回所有下一次?有没有办法等待&#34;减速机动作?我必须使用本地组件变量吗?
谢谢。