Flutter 保存值​;局部颤振

Flutter 保存值​;局部颤振,flutter,dart,Flutter,Dart,下面的代码允许您将参数保存为各种设备中的SharedPresence,但是在代码执行过程中,我看到以下错误。 如何更正此错误 错误: Unhandled Exception: type 'String' is not a subtype of type 'int' #0 Storage.salva (package:Myapp/utils/support.dart:17:24) <asynchronous suspension> #1 _LoginPageStat

下面的代码允许您将参数保存为各种设备中的SharedPresence,但是在代码执行过程中,我看到以下错误。 如何更正此错误

错误:

Unhandled Exception: type 'String' is not a subtype of type 'int'
#0      Storage.salva (package:Myapp/utils/support.dart:17:24)
<asynchronous suspension>
#1      _LoginPageState._salvataggiovalorilogin (package:Myapp/ui/login_page.dart:659:15)
#2      _LoginPageState._buildSignUp.<anonymous closure> (package:Myapp/ui/login_page.dart:636:38)
#3      _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:706:14)
#4      _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:789:36)
#5      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:182:24)
#6      TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:486:11)
#7      BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:264:5)
#8      BaseTapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:236:7)
#9      GestureArenaManager.sweep (package:flutter/src/gestures/arena.dart:156:2<…>
flutter: Letto: 0
//Dart View Code
  Storage.salva("1","sample");
  Storage.leggi("1");
  showInSnackBar("Parametri server configurati");

//Storage Class
class Storage {
  //Funzione che permette la lettura di un valore dalla memoria
  static void leggi(var name) async {
    final prefs = await SharedPreferences.getInstance();
    final key = name;
    final value = prefs.getInt(key) ?? 0;
    print("Letto: $value");
  }

  //Funzione che permette il salvataggio di un valore in memoria
  static void salva(var name, var value) async {
    final prefs = await SharedPreferences.getInstance();
    prefs.setInt(name, value);
    print("Salvato $value");
  }
}

将字符串值传递给
salva
方法。在这一行中,您将它保存为int

prefs.setInt(name, value);
你应该改用这个

prefs.setString(name, value);

salva
中,您正在传入一个字符串
“sample”
和调用的
setInt
。确保将Int作为第二个参数传递到
salva

我建议在函数参数上使用类型而不是var来帮助实现这一点

//Storage Class
class Storage {
  //Funzione che permette la lettura di un valore dalla memoria
  static void leggi(String name) async {
    final prefs = await SharedPreferences.getInstance();
    final key = name;
    final value = prefs.getInt(key) ?? 0;
    print("Letto: $value");
  }

  //Funzione che permette il salvataggio di un valore in memoria
  static void salva(String name, int value) async {
    final prefs = await SharedPreferences.getInstance();
    prefs.setInt(name, value);
    print("Salvato $value");
  }
}