ReactNative组件

本文介绍了ReactNative中常用的两个第三方组件:react-native-picker和react-native-common-date-picker。前者用于实现类似下拉选择框的功能,后者则提供年月日格式的日期选择。组件可通过npm或yarn安装,并结合useState和useEffect Hook进行使用。文章还展示了组件的具体用法和封装示例,便于在RN项目中快速集成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

react native第三方组件

本篇主要列举rn界面开发中常用三方组件,用作设计中可参考选择,一般配合使用useState\useEffect使用,在多个js页面传值时,为了共用或传递数据方便,也会使用hooks()【包含 调用方法】。
注意 所有三方组件都需要 使用npm或yarn命令安装后使用

1、react-native-picker(类似下拉选择框)

npm安装或使用yarn,百度搜索即可;放入rn项目的js中,节点渲染,点击事件触发。
用法:

import Picker from 'react-native-picker';

const pickerShow=()=>{
        Picker.init({
            pickerData: ["商品房","住宅","商场","写字楼"

                ],
            selectedValue: ['商品房'],
            pickerConfirmBtnText:'确定',
            pickerCancelBtnText:'取消',
            pickerTitleText:'选择权证类型',
            pickerToolBarBg: [232, 232, 232, 1],
            pickerBg:[245,245,245,1],
            pickerToolBarFontSize: 16,
            pickerFontSize: 20,
            onPickerConfirm: async(data) => {
                console.log(data)
                if(data){
                  setQzType(data);
                }else{
                  setQzType("");
                  
                }
                
            }
        });
        Picker.show();
    }
	
	
	<Box flexDirection="row" alignItems = "center" paddingVertical="s" borderBottomWidth={StyleSheet.hairlineWidth} borderBottomColor="darkGrey">
          <Text variant="userh1">权证类型</Text>
            <TouchableOpacity onPress={()=> pickerShow()} style={styles.pickerCss} >
              <Text style={styles.valueText}>{qzType}</Text>
              <Icon name="md-caret-down-outline" size={32} color="#1890ff" />
               
            </TouchableOpacity>
        </Box>

2、react-native-common-date-picker (年月日格式的日期组件下拉选择)

使用时可自己封装成组件,别的界面使用,引入自己封装的组件即可,此处案例为封装后的组件,更丰富的用法,可查看该组件的api(DatePicker),rn推荐的import DateTimePicker from ‘@react-native-community/datetimepicker’,有android和ios区别,且单纯的日期格式不造咋设置,基本都是带时间的,要根据展示格式选择


import React,{ useEffect,useState }  from "react";
import {  Modal,StyleSheet,View,Text, TouchableOpacity} from "react-native";
import {DatePicker} from "react-native-common-date-picker";

const DatePickerModel=({visible,onClose,onSelect,value})=>{
    

    const [pickerValue,setPickerValue]=useState("");
    const [mvisible,setMvisible]=useState(false);
    useEffect(()=>{
        if(value){
            setPickerValue(value);
            
        }
    },[value]);
   
    useEffect(()=>{
      setMvisible(visible);
  },[visible]);

  
    return (<Modal animated transparent={true} animationType="fade" visible={mvisible}>
        <View style={styles.container}>
        <View style={styles.pickerContainer}>
            <DatePicker
       cancelText="取消"
       confirmText="确定"
       defaultDate={pickerValue}
       minDate="1980-1-1"
       confirm={(date) => {
           onSelect(date);
           
       }}

       cancel={() => onClose()}
   />
           
        </View>
        </View>
    </Modal>)
};


const styles=StyleSheet.create({
    container: {
        flex: 1,
        alignItems: 'center',
        justifyContent: 'flex-end',
        backgroundColor: 'rgba(0,0,0,0.5)',
      },
      pickerContainer: {
        height: 200,
        width: '100%',
        backgroundColor: 'white',
      },
      label: {
        textTransform: 'capitalize',
      },
      header: {
        justifyContent: 'space-between',
        flexDirection: 'row',
        alignItems: 'center',
        backgroundColor: "white",
      },
});
export default DatePickerModel;

使用效果图如下
可以调整悬浮显示的位置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值