zoukankan      html  css  js  c++  java
  • RN 使用Radio实现多选

    这个单选功能使用的是Ant Design Mobile RN库中的Radio实现的,效果如图

    话不多说讲直接上代码

    1、引入import { Radio} from '@ant-design/react-native';

    2、声明 const RadioItem = Radio.RadioItem;

    3、使用map实现

    //  使用RadioItem实现多选 为每条数据绑定一个标记(checkedflag)然后每次点击更新这个值 类似原生多选的实现
        private showMapCheck() {
            let dataList: any[] = this.state.data
            if (dataList && dataList.length) {
    
                return dataList.map((item, index) => {
                    return (
                        <RadioItem
                            key={index}
                            style={{ height: 70 }}
                            checked={item.checkedflag}
                            onChange={(event: any) => {
    
                                let oData: any = this.state.data;
                                let oNew: any[] = [];
                                oData.map((fItem: any) => {
                                    // 将当前选中标记取反
                                    if (item.userId === fItem.userId) {
                                        fItem.checkedflag = !fItem.checkedflag;
                                    }
                                    oNew.push(fItem);
                                });
                                this.setState({ data: oNew });
                            }}
                        >
                            {/* 自定义控件 */}
                            <View style={{ flex: 1, paddingVertical: 15, flexDirection: 'row' }}>
                                <SelBidderView
                                    bidderHeadImg={item.iconUrl}
                                    bidderName={item.userName}
                                />
                            </View>
                        </RadioItem>
                    );
                })
            }
    
        }

    4、调用时通过checkedflag标记取出选中元素

     let oData: any = this.state.data;
     let oNew: any = [];
    oData.map((fItem: any) => { if (fItem.checkedflag) { oNew.push(fItem.userId)
    }
       });
  • 相关阅读:
    数组的push()、pop()、shift()和unshift()方法
    Javascript的函数柯里化
    开闭原则
    字符串相等的判断
    String类常用的方法
    阅读API文档
    String类和常量池
    String基础
    内部类的分类
    内部类的概念
  • 原文地址:https://www.cnblogs.com/lijianyi/p/11516163.html
Copyright © 2011-2022 走看看