热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在本机TextInput中,无法将autoCorrect转为{false}

如何解决《在本机TextInput中,无法将autoCorrect转为{false}》经验,为你挑选了1个好方法。

在我的TextInput更改文本中,我检测用户是否按下@按钮以进行提及.

onChangeText(text){
    const suggestTrigger = text.match(/\B@[A-Za-z0-9]*$/i) //grab "@" trigger
    const searchQuery = (suggestTrigger && suggestTrigger.length > 0) ? suggestTrigger[0] : null;
    this.setState({
        searchQuery: searchQuery
    })
}

然后,在我的渲染中,我做:


但是,即使我这样做,自动更正也不会关闭.

我仍然看到这个:

在此输入图像描述

这导致了问题,因为系统通常会用完全不同的词替换整个提及.

我怎么能拒绝自动更正和autoCapitalize 关闭,当用户按下@按钮?"我甚至试过渲染完全不同的东西,但行为仍然存在.



1> 小智..:

TL; DR:您应该在TextInput autoCorrect切换值后关闭并重新启动键盘.

巴迪,这是不是你的错,我有同样的问题上autoFocusreact native TextInput分量.我stateTextInput editable道具设置了名称,然后按下pencil按钮我改变editable道具.设计师告诉我,在TextInput编辑后,光标应该被聚焦,所以我使用isEditable状态作为autoFocus道具,见下文:

state = {
  isEditable: false
};

handleEdit = () => {
  const { isEditable } = this.state;
  this.setState({ isEditable: !isEditable });
};


在此输入图像描述

然后我按下编辑按钮,它转到:

在此输入图像描述

但它并没有集中精力且键盘没有启动,我寻找并发现了这个链接,之后TextInput没有改变/更新它的一些道具componentDidMount.☹️.另外,它没有区别,iOS或者Android两者都有这个问题,我以后在国家制定之后就把ref重点放在了这个问题上.看下面的代码:TextInputisEditabletrue

 {
    this.input = input;
  }}
/>

componentDidUpdate() {
  const { isEditable } = this.state;
  if (isEditable) {
    this.input.focus();
  }
}

你的情况:

绝对你不能使用,ref因为autoCorrect应该渲染,react native它不喜欢focus(),blur()因此Javascript无法访问它.

我为你的情况做了一个测试形状,我创建了另一个像星星一样的按钮,用于autoCorrect在我的编辑按钮旁边切换值.填充星号代表autoCorrecttrue和线星手段autoCorrectfalse,现在看到测试区域代码和看法:

state = {
  isEditable: false,
  correct: true
};

handleCorrect = () => {
  const { correct } = this.state;
  this.setState({ correct: !correct });
};

 {
    this.input = input;
  }}
/>

在此输入图像描述

在上面的照片中,autoCorrect渲染为如此清晰true,因此启用:

在此输入图像描述

当我写一个错误的波斯语单词时,自动更正会显示其建议,现在是按下星号按钮的时间:

在此输入图像描述

哇,这autoCorrectionfalse在上述情况,但我们仍然看到手机的自动更正.就像autoFocus它在第一个渲染中渲染一样,在它之后,它TextInput无法更改/更新它的道具.我突然按下编辑按钮:

在此输入图像描述

我再次按下编辑键,那么可以肯定,你意识到autoCorrectfalse现在,好了,现在看到我所看到的:

在此输入图像描述

autoCorrect保持false我的双按下编辑按钮,现在设备的自动校正完全消失.我不知道这是一个错误或我的理解不好,但我意识到在这个测试区域,为了更新autoCorrect价值,我们应该在更改其值后关闭iPhone键盘,然后重新启动它.发布的主要内容TextInput是推出的键盘.

对于我的测试,当我按下编辑按钮时,它的editable支柱TextInput变为false并且键盘关闭,所以当我再次按下编辑按钮时,TextInput聚焦和键盘重新启动时带有新autoCorrect值.这是秘密.

解:

您应该执行某些操作,使用新autoCorrect值关闭并再次打开iOS键盘.对于我为你的问题写的测试用例,我决定做一个混合创新的解决方案,使用ref和回调setState:

handleCorrect = () => {
  const { correct } = this.state;
  this.input.blur(); //-- this line close the keyboard
  this.setState({ correct: !correct },
    () => {
      setTimeout(() => this.input.focus(), 50);
      //-- above line re-launch keyboard after 50 milliseconds
      //-- this 50 milliseconds is for waiting to closing keyborad finish
    }
  );
};


 {
    this.input = input;
  }}
/>

在此输入图像描述

按下星形按钮后,键盘关闭并重新启动,自动校正完全消失.

在此输入图像描述

注意:显然,我总结了一些其他代码,如解构和编写类或扩展等,以提高人类的可读性.


推荐阅读
  • 使用圣杯布局模式实现网站首页的内容布局
    本文介绍了使用圣杯布局模式实现网站首页的内容布局的方法,包括HTML部分代码和实例。同时还提供了公司新闻、最新产品、关于我们、联系我们等页面的布局示例。商品展示区包括了车里子和农家生态土鸡蛋等产品的价格信息。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 深入理解CSS中的margin属性及其应用场景
    本文主要介绍了CSS中的margin属性及其应用场景,包括垂直外边距合并、padding的使用时机、行内替换元素与费替换元素的区别、margin的基线、盒子的物理大小、显示大小、逻辑大小等知识点。通过深入理解这些概念,读者可以更好地掌握margin的用法和原理。同时,文中提供了一些相关的文档和规范供读者参考。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • Android工程师面试准备及设计模式使用场景
    本文介绍了Android工程师面试准备的经验,包括面试流程和重点准备内容。同时,还介绍了建造者模式的使用场景,以及在Android开发中的具体应用。 ... [详细]
  • 网址:https:vue.docschina.orgv2guideforms.html表单input绑定基础用法可以通过使用v-model指令,在 ... [详细]
author-avatar
中国脐橙在线
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有