前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Rn引入NativeBase组件库并自定义主题色

Rn引入NativeBase组件库并自定义主题色

作者头像
明知山
发布2023-05-23 10:04:16
6280
发布2023-05-23 10:04:16
举报
文章被收录于专栏:前端开发随笔前端开发随笔
在这里插入图片描述
在这里插入图片描述

在查看expo文档的时候,发现它推荐了好几款组件库,我全部查看了一遍后,觉得NativeBase是比较好用的,且一直都在维护中,所以决定引入查看效果 https://docs.expo.dev/ui-programming/user-interface-libraries/

在这里插入图片描述
在这里插入图片描述

安装

NativeBase官方文档 我项目是用expo搭建的 安装NativeBase及其依赖,也可根据自己的项目来安装插件安装

代码语言:javascript
复制
yarn add native-base
npx expo install react-native-svg@12.1.1
npx expo install react-native-safe-area-context@3.3.2

使用

在项目App.js中安装需要进行全局配置

代码语言:javascript
复制
import AppNavigation from "./src/navigation/appNavigation"
import { extendTheme, NativeBaseProvider } from "native-base"

export default () => {
  const theme = extendTheme({
    colors: {
      primary: {
        50: '#6fc6f3', 100: '#5dbff2', 200: '#4bb8f0', 300: '#39b0ef', 400: '#27a9ed',
        500: '#15a2ec', 600: '#1296db', 700: '#118ac9', 800: '#0f7db7', 900: '#0e71a5',
      }
    }
  })

  return (
    <NativeBaseProvider theme={theme}>
      <AppNavigation />
    </NativeBaseProvider>
  )
}

主题色说明 600是主题色,其它值表示该主题色的深度值 获取其它的深度值,可以访问https://www.colorhexa.com/index.php

在这里插入图片描述
在这里插入图片描述

引入些组件查看效果

代码语言:javascript
复制
import { useState } from 'react'
import { Button, Modal, FormControl, Input } from "native-base"

export default () => {
    const [showModal, setShowModal] = useState(false)
    return (
        <>
            <Button onPress={() => setShowModal(true)}>打开弹窗</Button>
            <Modal isOpen={showModal} onClose={() => setShowModal(false)}>
                <Modal.Content maxWidth="400px">
                    <Modal.CloseButton />
                    <Modal.Header>Contact Us</Modal.Header>
                    <Modal.Body>
                        <FormControl>
                            <FormControl.Label>Name</FormControl.Label>
                            <Input />
                        </FormControl>
                        <FormControl mt="3">
                            <FormControl.Label>Email</FormControl.Label>
                            <Input />
                        </FormControl>
                    </Modal.Body>
                    <Modal.Footer>
                        <Button.Group space={2}>
                            <Button variant="ghost" colorScheme="blueGray" onPress={() => {
                                setShowModal(false)
                            }}>
                                Cancel
                            </Button>
                            <Button onPress={() => {
                                setShowModal(false)
                            }}>
                                Save
                            </Button>
                        </Button.Group>
                    </Modal.Footer>
                </Modal.Content>
            </Modal>
        </>
    )
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-05-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装
  • 使用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档