React Native 文本输入基础知识

这篇具有很好参考价值的文章主要介绍了React Native 文本输入基础知识。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在 React Native 中提供了一个文本输入组件TextInput。此组件主要是监听键盘输入事件,并把对应的输入值显示在组件中,此组件还提供了很多功能配置参数,例如自动更正、自动大写、占位符文本和不同的键盘类型(例如数字键盘)。

我们首先来编写一个简单的实例,使用onChangeText事件监听用户的输入:

export default function InputText() {
  const [name, setName] = useState<string>("");
  const [age, setAge] = useState<string>("");

  return (
    <View style={styles.container}>
      <Text style={styles.mainTitle}>InputText 组件实例</Text>
      <View style={styles.formItem}>
        <Text style={styles.labelTitle}>姓名:</Text>
        <TextInput
          style={styles.formInput}
          placeholder="请输入姓名"
          value={name}
          onChangeText={(value) => setName(value)}
        ></TextInput>
      </View>
      <View style={styles.formItem}>
        <Text style={styles.labelTitle}>年龄:</Text>
        <TextInput
          style={styles.formInput}
          keyboardType="numeric"
          placeholder="请输入年龄"
          value={age}
          onChangeText={(value) => setAge(value)}
        ></TextInput>
      </View>
      <View style={styles.infoContainer}>
        <Text>姓名:{name}</Text>
        <Text>年龄:{age}</Text>
      </View>
    </View>
  );
}

const styles = StyleSheet.create({
  container: {
    margin: 8,
  },
  mainTitle: {
    fontSize: 22,
    fontWeight: "bold",
    padding: 10,
    borderBottomWidth: 1,
    borderColor: "#e3e3e3",
  },
  input: {
    borderWidth: 1,
    borderRadius: 4,
    borderColor: "#e3e3e3",
    marginVertical: 8,
    padding: 8,
  },
  formItem: {
    flexDirection: "row",
    justifyContent: "flex-start",
    alignItems: "center",
    rowGap: 8,
    columnGap: 8,
    marginVertical: 12,
  },
  labelTitle: {
    fontSize: 16,
  },
  formInput: {
    borderWidth: 1,
    borderRadius: 6,
    paddingHorizontal: 10,
    paddingVertical: 6,
    flex: 1,
  },
  infoContainer: {
    flexDirection: "row",
    marginVertical: 8,
    justifyContent: "center",
    alignItems: "center",
    rowGap: 8,
    columnGap: 8,
  },
});

TextInput组件除了可以监听onChangeText事件外,还可以监听.focus().blur()事件。并且此组件还可以通过设置multiline属性来允许用户输入多行文本数据,例如我们可以允许用户最多输入 4 行文本,字数最大 100 个字符:

<View style={styles.formItem}>
  <Text style={styles.labelTitle}>备注:</Text>
  <TextInput
    style={styles.formInput}
    multiline
    numberOfLines={4}
    maxLength={100}
    placeholder="请输入备注"
    value={summary}
  ></TextInput>
</View>

默认情况下,TextInput 在其视图底部有一个边框。该边框的内边距由系统提供的背景图像设置,并且无法更改。避免这种情况的解决方案是要么不显式设置高度,在这种情况下系统将负责在正确的位置显示边框,要么通过将 underlineColorAndroid 设置为透明来不显示边框。underlineColorAndroid此属性只是针对于安卓设备而言。

请注意,在 Android 上,在输入中执行文本选择可以将应用程序的活动 windowSoftInputMode 参数更改为 adjustmentResize。当键盘处于活动状态时,这可能会导致具有“绝对”位置的组件出现问题。要避免此行为,请在 AndroidManifest.xml 中指定 windowSoftInputMode 或使用本机代码以编程方式控制此参数。文章来源地址https://www.toymoban.com/news/detail-662603.html

到了这里,关于React Native 文本输入基础知识的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 一、React基础知识

            第一种:使用原生搭建(可以从国内下载配置镜像、也可以从国外下载)                         指令:1.国内下载:(1:npm config set registry https://r.npm.taobao.org//                                                         (2:npm install -g create-react-app:全局安装

    2024年02月06日
    浏览(49)
  • React基础知识(二)

    能够知道受控组件是什么 能够写出受控组件 了解非受控组件 受控组件(★★★) HTML中的表单元素是可输入的,也就是有自己的可变状态 而React中可变状态通常保存在state中,并且只能通过 setState() 方法来修改 React讲state与表单元素值value绑定在一起,有state的值来控制表单元

    2024年02月12日
    浏览(34)
  • 第1章、react基础知识;

    一、react学习前期准备; 1、基本概念; ; ; 二、react jsx语法; 三、react元素渲染; 四、react组件基础之创建组件; 五、react props属性; 六、react state 状态; 七、react组件生命周期函数; 八、react setState 是同步还是异步; 九、react 条件渲染; 十、react列表渲染key; 十一、

    2024年04月11日
    浏览(72)
  • 【12】基础知识:React ajax

    了解 React 本身只关注于界面,并不包含发送 ajax 请求的代码 前端应用需要通过 ajax 请求与后台进行交互(json 数据) react 应用中需要集成第三方 ajax 库(或自己封装) 常用的 ajax 请求库 1、jQuery:比较重,如果需要另外引入不建议使用 2、axios:轻量级,建议使用 封装 XmlH

    2024年02月07日
    浏览(50)
  • 【01】基础知识:React简介与案例

    React 概述 React 是一个将数据渲染为 HTML 视图 的开源 JavaScript 库 React 由 FaceBook 开发,且开源 为什么要学习 React 1、原生 JavaScript 操作 DOM 繁琐、效率低(使用 DOM-API 操作 UI) 2、使用 JavaScript 直接操作 DOM,浏览器会进行大量的重绘重排 3、原生 JavaScript 没有组件化编码方案,

    2024年02月07日
    浏览(58)
  • 【前端知识】React 基础巩固(十三)——列表渲染

    在 React 中没有像 Vue 模块语法中的 v-for 指令,而是需要我们通过 JS 代码的方式组织数据,转成 JSX 在 React 中,展示列表最多的方式就是使用数组的 map 高阶函数 在展示数组前,有时会进行一些处理 过滤一些内容(filter 函数) 截取数组中的一部分内容(slice 函数) 列表中的

    2024年02月10日
    浏览(53)
  • 【前端知识】React 基础巩固(四十二)——React Hooks的介绍

    Hook 是 React 16.8 的新增特性,它可以让我们在不编写class的情况下使用state以及其他的React特性(比如生命周期)。 class组件 VS 函数式组件: class的优势: class组件可以定义自己的state,用来保存组件自己内部的状态;而函数式组件不可以,因为函数每次调用都会产生新的临时

    2024年02月14日
    浏览(63)
  • 【CSS】CSS文本样式【CSS基础知识详解】

    👨‍💻个人主页:@花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 本文章收录于专栏 【CSS】 【CSS专栏】 已发布文章 📁【CSS基础认知】 📁【CSS选择器全解指南】 📁【CSS字体样式】 属性名: color 作用:设置文本的颜色 属性值: 颜色表示方式 表示含

    2024年01月21日
    浏览(49)
  • 【前端知识】React 基础巩固(二十八)——StrictMode

    StrictMode 是一个用来突出显示应用程序中潜在问题的工具 与 Fragment 一样,StrictMode 不会渲染任何可见的 UI 为后代出发额外的检测和警告 严格模式检查仅在开发模式下运行,不影响生产构建 严格模式检查什么? 识别不安全的生命周期 使用过时的 ref API 检查意外的副作用 组件

    2024年02月16日
    浏览(50)
  • 【前端知识】React 基础巩固(二十七)——Fragment

    Fragment 允许将子列表分组,而无需向 DOM 添加额外节点 可以采用语法糖 / 来替代 Fragment,但在需要添加 key 的场景下不能使用此短语 查看Fragment应用后的效果

    2024年02月16日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包