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

如何在SharedPreferences中设置null值?

如何在shared_preferences中设置null值?

问题分析

原代码里直接调用prefs.setString('key', null)会报错,因为setString方法的第二个参数不接受null类型,该方法要求传入非空字符串。

解决方案

若要实现“对应键的值为null”的效果,正确做法是调用remove方法删除该键,后续读取这个键时就会返回null,完全符合你的需求,无需使用空字符串等变通方案。

修改后的代码示例:

void main() async {
  final prefs = await SharedPreferences.getInstance();
  await prefs.remove('key'); // 删除键,后续读取会返回null
  // 验证效果
  String? value = prefs.getString('key');
  print(value); // 输出: null
}

原理说明

shared_preferences是基于键值对的存储,当移除某个键后,该键在存储中不存在,此时调用getString方法就会返回null,这和主动设置null的效果完全一致,且符合插件的设计规范。

内容的提问来源于stack exchange,提问作者iDecode

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 16:05:21