访问Flutter / dart中的其他Class方法

问题描述 投票:0回答:1

我正在优先登录。当我在main.dart中编写所有代码时,一切正常。

问题:

当我在MySharePref上创建单独的类时,我收到一些错误。

MySharePref.dart

import 'package:first_app/UserModel.dart';
import 'package:shared_preferences/shared_preferences.dart';

class SharePrefClass {


  void _saveData(UserModel model) async{

    SharedPreferences prefs = await SharedPreferences.getInstance();
    await prefs.setString("Username",model.userName);
    await prefs.setString("Password", model.password);
  }
  Future<UserModel> _getData() async{
    SharedPreferences preferences = await SharedPreferences.getInstance();
    String username =  preferences.getString("Username");
    String password = preferences.getString("Password");
    UserModel model = UserModel(username,password);
    return model;
  }

}

我想在main.dart中访问这两个函数:

_checkLogin() async {
     UserModel userModel = new UserModel(
      userNameEditText.text , passwordEditText.text); 

   SharePrefClass mySharedPref = new SharePrefClass();
   final UserModel returnModel = mySharedPref._getData() ;

    if(returnModel.userName == ""){
      print("No data");
    }else{
      print("else executed");
    }
  }

我收到错误:

enter image description here

class dart flutter cross-platform
1个回答
1
投票

前缀“_”表示dart中的私有字段。

将方法名称_getData()更改为getData()将允许您在main.dart中访问此方法

© www.soinside.com 2019 - 2024. All rights reserved.