设置开发环境 运行以下命令以快速启动一个Expo应用: npx create-expo-app my-app 上述命令将创建我们所需的基础React Native项目文件。..."; import React, { useState } from "react"; import { Ionicons } from "@expo/vector-icons"; import DialpadKeypad..."; import React from "react"; import { Feather } from "@expo/vector-icons"; 接下来,让我们拿到我们在 CustomDialPad.js...然而,这种方法存在一些已知的问题: 点击组件外部时无法消除:这个问题意味着即使你在 TextInput 外部点击,数字键盘仍然保持打开状态。...解决这个问题的可能方法是使用 TouchableWithoutFeedback API组件,在你点击它外部时消除 TextInput 键盘。
开发React-native程序,除了官方提供的React-native CLI外,目前还有一个新的选择Expo。Expo通过编写React和js代码,来生成IOS app、安卓app和web端应用。...它主要包括两个工具:Expo CLI:命令行工具,用来创建脚手架、运行、build程序。Expo Go:安装在真机或虚拟机上的app,可以直接运行你构建出来的项目(不需要签名),方便debug和测试。...如何使用:1.全局安装Expo CLI工具npm install -g expo-cli2.创建项目(假设项目名称为expo-1)expo init expo-1或者npx create-expo-app...expo-13.安装其他依赖项如果是苹果M1、M2芯片,需安装watchmanbrew install watchman4.启动npm start启动完成后,可以在web端查看效果:http://localhost...:8081/也可以按 i 启动IOS虚拟机(前提是你已经安装了xcode和IOS虚拟机),启动IOS虚拟机后expo会首先给你安装Expo Go,如下图所示:安装好后就可以正式进入app了,效果如下:expo
笔者在Web端习惯使用 umi 后,就变得越来越“懒”,什么问题都用这一锤子解决。 当工作中涉及到 react-native(后文简称:RN)应用的内容时,发现 umi 暂时没有支持RN的打算。...概览 NPM 包 简介 umi-plugin-antd-react-native 为@ant-design/react-native提供按需加载,主题定制、预设、切换,国际化支持,在expo中链接字体图标...需要 react-native 0.60.0 及以上版本(>=0.60.0) umi-renderer-react-navigation 支持以react-navigation的方式来渲染react-router...需要 react-native 0.62.2 及以上版本(>=0.62.2) 安装 如果没有 RN 工程,则使用react-native init得到初始工程: npx react-native init...如果你的 RN 工程安装了多种开发工具,则必须通过 umi 配置指定当前使用哪一个: 使用expo: // .umirc.js export default { expo: true, haul
出现的问题 如下图 原因 android 输入框默认带有上下内边距 解决 将Textinput元素样式的垂直内边距设置为0 paddingVertical: 0
思维导图版本 React-native组件库列表 react-native 对 react 对 数据管理 mobx-react 对 mobx UI @ant-design/react-native 对...闪屏页 react-native-splash-screen 存储 @react-native-community/async-storage react-native-storage 导航 功能齐全的导航库的依赖项...react-native-router-flux svg react-native-svg 读取xml xmldom 矢量图形 @react-native-community/art tab react-native-tab-view expo...系列 基础 once and then you will be able to use most of the packages from the Expo SDK react-native-unimodules...停止休眠 expo-keep-awake 截图 react-native-view-shot web react-native-webview socket socket.io-client 支持修饰符
确保node版本在12以上 node -v 安装expo npm i -g expo-cli 在你的手机上下载应用 Expo Client https://expo.io/tools 打开vs code...安装以下插件 React Native Tools React-Native/React/Redux snippets for es6/es7 Prettier - Code formatter...Material Icon Theme 初始化项目 expo init react-native-demo 选择第一个选项 blank
在expo下使用react-native-fast-image组件 import FastImage from 'react-native-fast-image' const Imagegallery...在IOS下运行会报错:requireNativeComponent: "FastImageView" was not found in the UIManager in react native 报错的原因是...react-native-fast-image组件依赖的原生组件并没有包含在react-native里,使用前需要进行预构建。...解决方案: 执行下面的命令,预构建ios pod原生代码: npx expo prebuild -p ios --clean 也可以不用后面的参数,直接prebuild,将安卓的原生代码库也一起安装上...npx expo prebuild 然后启动expo代码 npx expo run:ios 经过漫长的等待,应该就能正常运行了。
是否有必要学 react-native? 先说一个结论:RN ≠ 原生,别指望会个 react 就能写出靠谱的原生应用。...就从我的开发经历来说,坑是真的多,但好在RN拥有庞大的线上社区,可以找到的几乎所有问题的答案。但国内的社区好像并不是很好,很多问题我都是在国外论坛中解决的。...Expo Expo 是基于 React Native 并整合大量常用的 native module(Expo SDK),像原生的功能如相册,相机,蓝牙等功能,在 expo 都是直接集成的,相当于封装原生的...相关链接:https://github.com/expo/expo/issues/9591#issuecomment-1485871356 样式问题 在样式方面与传统的 Web 开发存在一定的区别。...模拟器无法请求本地 api 由于一开始是在 Web 端进行调试开发的,所以没留意到这个问题,直到切换到安卓模拟器之后发现模拟器无法请求本地后端服务,在IOS 端暂无这问题。
config.h not found 解决: $ rm -rf ~/.rncache $ cd node_modules/react-native/third-party/glog-0.3.4/...复制 如果用真机和者模拟器编译运行,请在iPhoneOS.platform(真机)和iPhoneSimulator.platform(模拟器)两个文件下的lib文件夹分别添加libstdc++6.0.9tbd...PC_FROM_UCONTEXT command 左击进到这个宏定义部分,将原来的 PC_FROM_UCONTEXT 宏定义替换为 #undef HAVE_UCONTEXT_H #undef PC_FROM_UCONTEXT
UI的选择为什么UI的选择单独拿出来呢,因为颜值即正义,对吗,所以,我选择 reactnativeelements他提供的demo可以直接看下,另外,因为他配置了 expo 的模板方式给我们初始化一个项目...逻辑部分思考一按,我恩要在对话框中问一个问题,然后请求模型得到响应,我们可能需要写一个模型请求的封装:import useSettingsStore from ".....测试一下,我们的模型是否打通,ok,看起来问题不大。...所以,整个 react-native 的初步阶段就算是完结了,当然这个App 还需要大量的打磨,才可以拿出来用,如果有需要,可以私信我加入,一起搞事。...总结本文探索了一下 react-native 的开发,使用 expo 直接进行开发,这样,我们不需要太多的环境配置就可以上手,注意最新的 expo ,即 50 版本可以直接文件路由的方式,这意味着熟悉
让我们看看输出: 在Expo中使用自定义字体的React Native 在这一部分,我们将学习如何在Expo中使用自定义字体。.../raleway @expo-google-fonts/quicksand 如果你有其他想要使用的Google字体,你可以在这里查看Expo支持的可用字体。...在Expo项目中集成自定义的Google字体 在你的 App.js 文件中,粘贴以下代码块: import { Raleway_200ExtraLight } from "@expo-google-fonts..."expo-font"; import { StatusBar } from "expo-status-bar"; import { StyleSheet, Text, View } from "react-native...import { StatusBar } from "expo-status-bar"; import { StyleSheet, Text, View } from "react-native";
其中一个例子可以是音乐播放器,当播放音轨时,应用需要显示一个通知: 以下代码块展示了如何创建一个本地通知: import { StyleSheet, Text, View, Button } from "react-native...install notifee 然后,要使用这个库,在 App.tsx 文件中编写这段代码: import notifee from "@notifee/react-native"; function...解决设置推送通知时的常见问题 开发人员在使用 Expo 通知和 Notifee 时常常会遇到一些常见的问题。...让我们看看这些问题的原因以及如何解决它们: 我无法在裸 React Native 应用中运行 Expo 通知:这是因为 Expo 通知库依赖于其他 Expo 库。...要解决这个问题,请转到 Expo 通知安装文档并遵循设置步骤。 Notifee 无法在 Expo 项目中运行:不幸的是,截至撰写本文时,这仍然是一个持续存在的问题。
创建新项目 react-native init ProjectName 3. yarn start 安装 EXPO 脚手架 什么是EXPO Expo是通用React应用程序的框架和平台。...全局安装 EXPO 推荐用 yarn 安装// npm install --global expo-cli (当时用npm,安装了半个小时,也没安装完......) 2....创建项目 expo init my-project EXPO 提供了 很方便开发便捷 从项目的开发 到 最终的上线, 都很轻松。...当你想打包你的App 成APK 文件: 你可以是使用EXPO 提供的 指令: expo build:android 打包的时候,会需要EXPO的账户, 因为它会发布到你EXPO账户下,生成APK 文件...打包成功,它会提供一个链接,去这个链接你就可以下载打包后的APK 文件 下载APK 显示效果 到此该结束了 本章介绍了,如何配置React Native 环境, 以及EXPO 神器如何使用,
在该项目包名时遇到的一个android打包问题,如下 改包名步骤 修改android/app/build.gradle里的applicationId,为新包名,如:com.xxx.yyy.myProject...修改android/app/src/main/AndroidManifest.xml里的package,为新包名,如:com.xxx.yyy.myProject 在android/app/src/main.../java/com下根据新包名中多出的两级xxx.yyy新创建两级新目录,如:android/app/src/main/java/com/xxx/yyy 将之前android/app/src/main/.../gradlew stop(虽然这步我执行失败了,但是好像起到了new一个gradle daemon的作用) 然后执行 ..../gradlew assembleRelease (会生成一个release但是未签名的版本) build=>Generate signed APK,选择证书生成签名的release版本 可能遇到的其他问题
此外,由于Expo很受欢迎,许多人常常选择使用它,我们也将探讨如何在Expo中构建启动屏幕。 什么是启动画面? 启动画面是用户访问应用程序其余功能之前出现的第一个屏幕。...完成后的应用将如下图所示 为什么启动画面的图片大小很重要 为移动应用创建启动画面可能会有些棘手,你肯定不希望由于启动画面分辨率的不一致在某些设备上出现显示问题。例如,安卓设备的需求与iOS完全不同。...将内容模式设置为“aspect fit”,如下所示: 更改iOS启动屏幕颜色 你可能会问的下一个问题是“我如何在 React Native 中更改启动屏幕的背景颜色?”...StyleSheet, SafeAreaView, useColorScheme, } from 'react-native'; import {Colors} from 'react-native...使用 Expo,我们可以以简化和直接的方式做到这一点,因为 Expo 允许我们在 app.json 文件中配置我们的启动屏幕和图片。 我们将使用上述的 App.js 和 Login.js 文件。
创建新项目 react-native init ProjectName 3. yarn start 安装 EXPO 脚手架 什么是EXPO ★Expo是通用React应用程序的框架和平台。...全局安装 EXPO 推荐用 yarn 安装// npm install --global expo-cli (当时用npm,安装了半个小时,也没安装完......) 2....创建项目 expo init my-project EXPO 提供了 很方便开发便捷 ★从项目的开发 到 最终的上线, 都很轻松。...当你想打包你的App 成APK 文件: 你可以是使用EXPO 提供的 指令:expo build:android 打包的时候,会需要EXPO的账户, 因为它会发布到你EXPO账户下,生成APK 文件...” 打包成功,它会提供一个链接,去这个链接你就可以下载打包后的APK 文件 下载APK 显示效果 到此该结束了 ★本章介绍了,如何配置React Native 环境, 以及EXPO 神器如何使用
目前推特、expo、大联盟足球、Flipkart、优步、《泰晤士报》、DataCamp 以及我们小作坊都在生产中使用了 react-native-web。...添加到React Native项目 一般来说新建 React Native 项目时可以选用 expo-cli 或者 react-native-cli 来创建。...expo-cli 中已经预置了对web的支持,如下图所示....我们先初始化项目: npx react-native init rn_web # 当然也可以使用模板,如 # npx react-native init rn_web --template react-native-template-typescript...当然,如果您希望将本不同端的代码都保存在一个index.js文件中,则可以使用import { Platform } from 'react-native'来按照条件区分不同平台的代码。
问题 在写flatlist复用组件时,调用的时候如果父组件是不定高的组件,会造成组件无法显示 如果父组件样式{flex:1},则会出现下拉方法频繁触发或不正常触发的问题(我这里出现的问题是在列表第6个项目在底部时...,缓慢上拉会多次触发flatlist的onEndReached监听) 原因 推测是因为{flex:1}不适合做动态高度组件的父组件样式,会错误的判断高度导致onEndReached多次不正常触发。...解决 可以把列表上方所需的组件做成header属性传入组件当做flatlist的头部组件,这样就可以直接调用封装好的组件。...也可以把父元素的样式设成{height: '100%'},这样就可以正确的触发onEndReached监听。
主要步骤按官方文档实现,这里只记录遇到的一些小坑 官方文档 run-android时NDK报错 前提是NDK已安装并且环境变量已设置 根据报错提示在android/local.properties文件里加入...ndk.dir=~/Library/Android/android-ndk-r10e //这里改成你自己的ndk路径 cxxbridge找不到 在node_modules/react-native-update...com.facebook.react.cxxbridge.JSBundleLoader //这行改为import com.facebook.react.bridge.JSBundleLoader 这个错误在我写这篇的时候作者已经修改了...解决:在项目根目录自己创建一个名为rn-cli.config.js的文件。
在构建移动应用程序时,首要考虑的是如何处理用户在应用程序中的导航问题,例如屏幕的展示和屏幕之间的切换。 React Navigation 是 React Native 最著名的导航库之一。...注:在本文中,我们将在 React Native 应用程序中使用 Expo。...首先,我们使用下面的命令创建一个新的应用程序: npx create-expo-app ReactNavigationDemo 这将创建一个名为 ReactNavigationDemo 的新项目 接下来...相反,我们使用了 npx expo install ,因为它会安装与我们的项目软件包兼容的依赖版本。...最后,运行应用程序 npx expo start 2.使用 TabNavigator 大多数移动应用程序都有一个以上的屏幕。在此类移动应用程序中,常见的导航方式是基于标签的导航。
领取专属 10元无门槛券
手把手带您无忧上云