dart - Flutter 创建自己的类
问题描述
我正在尝试创建一个包含特定身份验证过程内部方法的类
所以我创建了一个文件 MyAuthMethods.dart
class UserAuth {
static int seconds = 10000000;
static String username;
static String password;
static String key = "abc123";
static Future<String> _generateAuthCode(seconds, username, password, key) async{
var result = "something";
print("Seconds: seconds, Username: username, Password: password, Key: key");
return result;
}
}
在我的表单(FormScreen.dart)上,有一个按钮 onPressed 来执行该功能
onPressed:(){
UserAuth._generateAuthCode(UserAuth.seconds, "username", "password", UserAuth.key);
}
但它不起作用。它说:
error: The method '_generateAuthCode' isn't defined for the class 'UserAuth'.
我需要改变什么?
解决方案
Dart 中没有 public、protected 和 private 之类的关键字。为了使变量或函数对类私有,变量或函数的名称需要以下划线(_
)开头。没有下划线(_
)的变量/函数是公共的。您已经定义了一个私有函数并访问了该私有函数。您可以通过公开函数来修复:为此,只需从函数中删除下划线,将其设为generateAuthCode
.
class UserAuth {
static int seconds = 10000000;
static String username;
static String password;
static String key = "abc123";
static Future<String> generateAuthCode(seconds, username, password, key) async{
var result = "something";
print("Seconds: seconds, Username: username, Password: password, Key: key");
return result;
}
}
推荐阅读
- javascript - 如何转换可观察的
到可观察的 在角度 4 - git - Github 页面上的 Powerpoint 演示文稿
- javascript - 使用 Maven 工具 React Js 示例
- python - python中的神经网络
- java - 改造需要太多时间才能得到响应
- java - 无法使用 Camel 中的 adviceWith 拦截和模拟 SQL 端点
- python - Counter() 返回看似随机的大整数
- batch-file - 检测到文件时运行 .BAT
- java - 提交响应后无法调用 sendError() - 将 Keycloak 与 Spring Security + Boot 一起使用
- java-8 - 完全按照解析的方式打印 ZonedDateTime