React Native:可以同步减速器调用吗?

时间:2017-03-07 10:44:56

标签: react-native redux react-redux

我正在使用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;减速机动作?我必须使用本地组件变量吗?

谢谢。

0 个答案:

没有答案