Flutter 如何在颤振中使用带有sharedpref的下拉菜单

Flutter 如何在颤振中使用带有sharedpref的下拉菜单,flutter,Flutter,我尝试使用下拉按钮,在菜单中选择一个文本并显示它。之后,我发送短信与选定的文字。为了完成,我尝试使用sharedpref保存该值,以便在应用程序关闭后显示文本。为此,我以init状态上传SharedRef。但我有一个错误: failed assertion line 481 pos 15: value==null||items.where((DropdownMenuItem<T> item) => item.value == value).length =

我尝试使用下拉按钮,在菜单中选择一个文本并显示它。之后,我发送短信与选定的文字。为了完成,我尝试使用sharedpref保存该值,以便在应用程序关闭后显示文本。为此,我以init状态上传SharedRef。但我有一个错误:

     failed assertion line 481 pos 15: value==null||items.where((DropdownMenuItem<T> 
     item) => item.value == value).length == 1: is not true.
我在Initstate中调用这个sharedpref块来显示保存的值

 @override
  void initState() {
   super.initState();

   _loadvaluesonnerie();
  }

谢谢

当您使用异步函数
\u loadvaluesonnerie()
来设置
所选文本
,直到完成为止,
所选文本
将为空

您能否设置一些默认值,如
'1'
(项目中的第一项)作为
所选文本的初始值


这对您有用吗?

当您使用异步函数
\u loadvaluesonnerie()
设置
selectedText
,直到它完成为止,
selectedText
将为空

您能否设置一些默认值,如
'1'
(项目中的第一项)作为
所选文本的初始值


这对你有用吗?

你在哪里调用
\u savevaluesonnerie
函数()?你在哪里调用
\u savevaluesonnerie
函数()?没关系,谢谢。这对我来说不是一个完美的解决方案,但它是有效的,没关系,谢谢。这对我来说不是一个完美的解决方案但它是有效的,
 _savevaluesonnerie() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
      setState(() {
      prefs.setString('counter305', selectedText);
     });
   } 


  _loadvaluesonnerie() async {
     SharedPreferences prefs = await SharedPreferences.getInstance();
      setState(() {
      selectedText = (prefs.getString('counter305')) ??"" ;
   });
   }
 @override
  void initState() {
   super.initState();

   _loadvaluesonnerie();
  }