You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用otp_text_field包触发TypeErrorImpl错误:Unexpected null value

Flutter otp_text_field 输入时触发"Unexpected null value" TypeErrorImpl错误解决方法

问题分析

使用otp_text_field包实现OTP输入时,首次输入字符触发onChanged环节抛出TypeErrorImpl: Unexpected null value错误,核心原因是部分版本的包内部未对onChanged回调做空值判断,当未显式提供该回调时,尝试调用null函数导致崩溃。

解决方案

方案1:显式添加空的onChanged回调

在OTPTextField组件中补充onChanged参数,即使不需要处理中间输入状态,也提供一个空实现:

Expanded(
  child: Column(
    mainAxisAlignment: MainAxisAlignment.spaceEvenly,
    children: [
      OTPTextField(
        length: 4,
        width: 250,
        fieldWidth: 35,
        style: const TextStyle(fontSize: 17),
        textFieldAlignment: MainAxisAlignment.spaceAround,
        fieldStyle: FieldStyle.underline,
        onChanged: (pin) {}, // 补充空回调避免null调用
        onCompleted: (pin) {                                         
          print("Completed: " + pin);                                         
        },
      ),
    ],
  ),
)

方案2:升级包到最新稳定版

检查pubspec.yaml中的otp_text_field版本,替换为最新稳定版(如^1.1.3或更高),新版本可能已修复null安全相关问题:

dependencies:
  otp_text_field: ^1.1.3 # 替换为最新稳定版本

执行flutter pub get更新依赖后重试。

方案3:排查Flutter SDK兼容性

确保你的Flutter SDK版本与otp_text_field包兼容,若使用Flutter 3.x版本,优先选择明确支持null安全的包版本。

内容的提问来源于stack exchange,提问作者ᴅ ᴇ ʙ ᴊ ᴇᴇ ᴛ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 05:36:14