React native中TouchableOpacity下FlatList不能滚动问题

最近因为项目需要,又折腾起React native。RN理念很好,坑也很多。这几天就遇到了使用model封装弹框时,里面的FlatList不能滚动问题。其中的主要的两个方法如下

render() {
        return (
            <View>
                <Modal
                    animationType={"fade"}
                    transparent={true}
                    visible={this.state.modalVisible}
                    onRequestClose={() => {alert("Modal has been closed.")}}
                >
                    <TouchableOpacity
                        //style={{flex:1,justifyContent:'center', alignItems:'center',backgroundColor:'rgba(0,0,0,0.3)',}}
                        style={{flex:1,backgroundColor:'rgba(0,0,0,0.3)',}}
                        onPress={()=>{
                            this.setModalVisible(false)
                        }}
                        activeOpacity={1}
                    >
                        <TouchableOpacity
                            activeOpacity={1}
                            style={{width:200,backgroundColor:'white',position: 'absolute', top:40,left:40}}
                            onPress={()=>{

                            }}
                        >
                            <FlatList
                            data={this.props.dataArray}
                            onScroll={()=>{
                            console.log('scroll');
                            }}
                            style={{padding:5}}
                            renderItem={(data)=>this._renderItem(data)}
                            keyExtractor = {this._extraUniqueKey}// 每个item的key
                            />
                        </TouchableOpacity>
                    </TouchableOpacity>
                </Modal>
            </View>
        );
    }
    _renderItem(data){
        return (
            <View
                onPress={()=>{
                    this.clickItem(data)
                }}
            >
                <View style={styles.styleItem}
                >
                    <Text style={{fontSize:16}}>
                        {data.item}
                    </Text>
                </View>
            </View>
        );


    }
    _extraUniqueKey(item ,index){
        return "index"+index+item;
    }

效果如下。但Flatlist无法滚动

谷歌后发现一解决办法就是将renderItem中的父容器由View改成TouchOpacity(Touch系列组件应该都可以),然后就正常滚动了。原因未知,应该是RN的一个BUG。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值