如何在SharedPreferences中设置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
相关产品推荐
相关产品推荐

