React Native - 设置 secureTextEntry 时无法更改字体

2024-04-10

const entryInput = forwardRef((props, ref) => {
return (
    <View
        style={{
            fontFamily: "roboto-regular",
            color: "rgba(255,0,0,0.6)",
            fontSize: hp("1.5%")
        }}>
        <Text style={styles.text}>{props.show_err ? props.err : null}</Text>
        <TextInput
            ref={ref}
            style={{
                borderColor:
                    !props.err || props.err === "" || props.err === props.empty_err
                        ? "gray"
                        : "rgba(255,0,0,0.6)",
                backgroundColor: "rgba(213, 213, 213, 0.1)",
                borderWidth: wp("0.3%"),
                borderRadius: wp("1%"),
                width: wp("85%"),
                height: hp("5.2%"),
                fontFamily: "roboto-regular",
                fontSize: hp("2%"),
                fontWeight: "normal"
            }}
            returnKeyType={props.last ? "done" : "next"}
            blurOnSubmit={props.last ? true : false}
            placeholderTextColor={"gray"}
            paddingLeft={wp("2%")}
            paddingRight={hp("2%")}
            placeholder={props.placeholder}
            onSubmitEditing={() => {
                if (props.next_input) {
                    props.next_input.current.focus();
                } else if (props.action) {
                    props.action();
                }
            }}
            onChangeText={(text) => {
                if (props.setText) props.setText(text);
                if (props.validate) props.validate(text);
            }}
        />
    </View>
);});

新的反应本机...尝试创建密码的输入字段。

这个自定义组件工作得很好,但是当我添加 secureTextEntry={true} 时,字体会无缘无故地发生变化(它不是机器人常规的),它甚至不会更改为默认字体。

我注意到,当我从样式对象中删除 fontFamily 键,然后保存代码并重新加载 expo 客户端,然后再次添加 fontFamily 并再次重新加载时,TextInput 的行为符合预期,并且字体是我设置的字体(roboto-regular),但是手动重新加载应用程序时,该错误会再次出现。


接受的答案将靠运气。当安装组件时,refs 可以是定义的,也可以是未定义的。

将以下内容添加到您的组件中以正确解决问题:

  const _inputRef = useRef(null);
  const setRef = useCallback((node) => {
    if (_inputRef.current) {
      // Make sure to cleanup any events/references added to the last instance
    }
    if (node) {
      // Check if a node is actually passed. Otherwise node would be null.
      // You can now do what you need to, setNativeProps, addEventListeners, measure, etc.
      node.setNativeProps({
        style: { fontFamily: "Quicksand-Medium" },
      });
    }
    // Save a reference to the node
    _inputRef.current = node;
  }, []);

确保您的 TextInput 已分配此引用:

    <TextInput ref={setRef} ... />
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React Native - 设置 secureTextEntry 时无法更改字体 的相关文章

随机推荐

  • 使用泛型快速查找给定类的超级视图

    我想我正在与仿制药作斗争 我想创建简单的 UIView 扩展来递归地查找函数参数中传递的类的超级视图 我希望该函数返回可选的 显然包含 nil 或作为提供的类的实例可见的对象 extension UIView func superviewO
  • 强制 Internet Explorer 使用特定的 Java 运行时环境安装?

    当查看别人包含小程序的网页时 当我安装了多个 JRE 时 如何强制 Internet Explorer 6 0 使用特定的 JRE 首先 禁用当前安装的 Java 版本 要执行此操作 请转至控制面板 gt Java gt 高级 gt 浏览器
  • 没有要加载的文件——rest_client (Rails 3)

    当我做thin start 这是我得到的错误 thin start gt gt Using rack adapter rvm gems ruby 1 9 2 p0 gems activesupport 3 0 9 lib active su
  • 尾递归函数上的 StackOverflowError

    当我使用 avg bids 4000 10 5 调用以下 Clojure 代码时 会导致 java lang StackOverflowError 我试图找出原因 因为 sum bids 是作为尾递归函数编写的 所以应该可以工作 使用 Cl
  • 如何允许 html 返回 angular2 管道?

    我有一个返回 html 字符串的管道 但是字符串输出可能会作为安全默认值进行转义 我确信必须有一个选项来允许使用 html 但当我搜索文档时找不到它 我怎样才能告诉管道允许渲染实际的 html 使用绑定innerHTML https dev
  • 转换 boost::variant 类型的 std::vector

    我如何实现下面的函数来从矢量转换Value to a Container 我想断言 如果不是所有成员values属于相同类型 即向量包含字符串和整数的混合 这是因为该函数的返回值是std vector
  • 发布签名的 Android 应用程序,Google Plus 登录和 Google 地图无法正常工作

    1 我正在使用谷歌 登录 and 谷歌地图在我的android应用程序中 2 在调试应用程序时从Android Studio到真实设备 移动 Google plus登录和Google Map工作正常 一切正常 Problem 1 Build
  • 检查 Ember Handlebar If 块助手中的值是否等于

    我们如何检查值是否相等ember js http www emberjs com的 If 块助手 if person John 我们如何在车把上执行上述操作 The if helper 只能测试属性 不能测试任意表达式 因此 在这种情况下
  • 在nodeJs socket.io中,webstorm中的方法未解决

    我正在节点中学习socket io 并且我已经使用 安装了该模块 npm install socket io save 这是我的代码 var app require express var http require http Server
  • 使用 Maven 3 设置 Struts2 EAR 项目

    我正在迁移自Apache Ant Apache Ivy to Apache Maven用于新项目的生命周期管理 我从未在正式版本中使用过 Maven 所以我对此完全是新手 目前我已经安装并配置Maven 3 http maven apach
  • 静态变量与成员

    如果某个类的数据将被修改并且需要在整个程序中保留 但仅在一个成员函数中使用 那么最好将该变量设为其所在例程的局部静态变量 还是使其成为该例程的局部静态变量 班级成员 问题不是 数据将在整个程序中使用 而是 如果您创建此类的两个对象 您是否希
  • 使用 nltk 中的meteor_score模块评估模型时如何实现meteor分数?

    我目前有 2 个文件 reference txt 和 model txt 这两个文本文件包含原始字幕和训练后生成的字幕 我可以简单地执行以下操作来获取流星分数 score nltk translate meteor score meteor
  • 如何以MVVM模式加载wpf用户控件

    我正在创建一个采用 mvvm 模式的 wpf 用户控件 所以我们有 视图 代码隐藏文件中没有代码 视图模型 模型 数据访问文件 I have 主窗口 xaml 作为视图文件 我需要与之绑定主窗口模型 cs 通常 在 wpf 应用程序中 我们
  • pandas groupby 和rolling_apply 忽略NaN

    我有一个 pandas 数据框 我想计算列的滚动平均值 在 groupby 子句之后 但是 我想排除 NaN 例如 如果 groupby 返回 2 NaN 1 则结果应为 1 5 而当前它返回 NaN 我尝试了以下方法 但似乎不起作用 df
  • 如何将变量的值(字符串)设置为等于数组中的键?

    我有以下数组 var deckArray card1 rank suit card2 rank suit card3 rank suit card4 rank suit card5 rank suit card6 rank suit car
  • 如何在ArrayAdapter中的列表开头添加对象?

    ArrayAdapter 有方法add T object 在列表末尾添加一个对象 有没有办法在列表的开头添加对象 您可以使用 insert T object int index http developer android com refe
  • 从模板访问模型

    在玩 ember 时 我发现有时模型存储在控制器的content属性 有时模型也可以直接在控制器上使用 然而 当这种情况发生时 我不明白 让我用一个我在组装 ember MVC 时发现的例子来解释一下 设置 A 开始 我定义了一个自定义Me
  • 如何使调整 WPF 窗口大小时不那么“滞后”?

    我对 WPF 世界比较陌生 我立即注意到的一件事是 当您调整窗口大小时 窗口内容的绘制是多么滞后 例如 如果窗口边缘有滚动条 则这些滚动条在缩小时将部分隐藏 并且在放大时它们与窗口边框之间有空间 即使在 Visual Studio 中创建的
  • Drupal 6模块安装文件未在数据库中创建表

    我正在使用 Schema API 在 Drupa 6 17 上为我的模块创建表 但这些表并未在数据库中创建 我安装了架构模块 它告诉我 虽然我的模块的架构被识别 但它的表不在数据库中 它出现在 缺失 下 Tables in the sche
  • React Native - 设置 secureTextEntry 时无法更改字体

    const entryInput forwardRef props ref gt return