【问题标题】:Method 'replaceFirst' cannot be called on 'String?'不能在“字符串”上调用方法“replaceFirst”?
【发布时间】:2021-12-26 10:28:44
【问题描述】:

错误:不能在“字符串”上调用方法“replaceFirst”?因为它可能为空。 尝试使用 ? 调用。而是。)

.replaceFirst(r'$selectedRowCount', formatDecimal(selectedRowCount));

 

【问题讨论】:

  • 您使用的变量将为空,因此请尝试将非空数据添加到您的变量中,然后只有您可以在其中执行操作。

标签: flutter flutter-dependencies


【解决方案1】:

正如 Saffron-codes 所说,您不能在“字符串”上执行 replaceFirst?变量,因为它可以为 null,并且 dart 是 null 安全的。

您有两种选择。您可以将变量设为“字符串”,如果这样做,则必须在启动时为其赋值:

String variableName = ''

代替:

String? variableName

您还可以在调用 replaceFirst 时进行空值检查(在 .replaceFirst 之前添加一个问号),这是错误消息“尝试使用 ? 调用?”中建议的操作。 ':

variableName?.replaceFirst(r'$selectedRowCount', formatDecimal(selectedRowCount));

【讨论】:

    【解决方案2】:

    在. 之前添加! 运算符,使其不可为空

    !.replaceFirst(r'$selectedRowCount', formatDecimal(selectedRowCount));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-24
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      • 2011-04-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多