存储列表<Obj> 到 SharedPreferences

Store List<Obj> to SharedPreferences

我想将 List<WorkForceArguments> 存储到 SharedPreferences

import 'dart:convert';
 
class WorkForceArguments {
  var name;
  var no;
  WorkForceArguments({this.name, this.no});
 
  factory WorkForceArguments.fromJson(String str) =>
      WorkForceArguments.fromMap(json.decode(str));
 
  String toJson() => json.encode(toMap());
 
  factory WorkForceArguments.fromMap(Map<String, dynamic> json) =>
      WorkForceArguments(
        name: json["name"],
        no: json["no"],
      );
 
  Map<String, dynamic> toMap() => {
        "name": name,
        "no": no,
      };
}
 

pageB中,当点击提交按钮时,会弹出数据回到页面A

 Widget _showButton() {
    return Container(
      width: double.infinity,
      height: 40,
      child: MaterialButton(
        color: Theme.of(context).primaryColor,
        onPressed: () {
          Navigator.pop(
              context,
              WorkForceArguments(
                  _workForceController.text, _numberController.text));  // Error!
        },
        child: Text(
          Localization.of(context).submit,
          style: TextStyle(fontSize: 15.0, color: Colors.white),
        ),
      ),
    );
  }

而在页面 A 中,它有一个用于将数据存储到 SharedPreferences 的存储按钮。但是我在 PageB 上遇到错误。

  Navigator.pop(
                  context,
                  WorkForceArguments(
                      _workForceController.text, _numberController.text));  // Error too many arguments, expect 0 but found 2
 Navigator.pop(
  context,
  WorkForceArguments(
    name: _workForceController.text,
    no: _numberController.text,
  ),
)

您尝试使用命名参数向构造函数添加参数,阅读有关 Dart 中构造函数和方法的参数的更多信息 here