[英]Dart & Flutter: How to call for a class method inside another class
[英]How to call class method in another file dart
我已經學習飛鏢幾天了。 我創建了一個驗證類,我將在 TextFormField 驗證器中使用它,但我不知道如何調用該函數
我知道文檔顫動使用這個
validator: (value) {
if (value.isEmpty) {
return 'Please enter some text';
}
return null;
}
但是我創建了這個類,所以當我需要它時只需調用該函數
class Validation {
String validatePassword(String value) {
if (value.length < 4) {
return 'Password Minimal 4 Karakter';
}
return null;
}
String validateEmail(String value) {
if (!value.contains('@')) {
return 'Email Tidak Valid';
}
return null;
}
String validatedName(String value) {
if (value.isEmpty) {
return 'Nama Tidak Boleh Kosong';
}
return null;
}
}
這是將調用驗證類的代碼
import 'package:flutter/material.dart';
import 'package:flutapp/src/mixins/validation.dart';
class RegisterScreen extends StatefulWidget {
createState() {
return RegisterScreenState();
}
}
class RegisterScreenState extends State<RegisterScreen> with Validation {
final formKey = GlobalKey<FormState>();
String name = '';
String email = '';
String password = '';
@override
Widget build(BuildContext context) {
return Container(
margin: EdgeInsets.all(20.0),
child: Form(
key: formKey,
child: Column(
children: [
nameField(),
emailField(),
passwordField(),
registerButton(),
],
),
)
);
}
}
Widget nameField() {
return TextFormField(
decoration: InputDecoration(
labelText: 'Nama Lengkap'
),
validator: validateName,
);
}
Widget emailField() {
return TextFormField(
keyboardType: TextInputType.emailAddress,
decoration: InputDecoration(
labelText: 'Email',
hintText: 'contoh@gmail.com'
),
);
}
Widget passwordField() {
return TextFormField(
obscureText: true,
decoration: InputDecoration(
labelText: 'Password',
hintText: 'contoh@password123'
),
);
}
Widget registerButton() {
return RaisedButton(
color: Colors.blueAccent,
onPressed: () {
},
child: Text('Register'),
);
}
任何答案將不勝感激
只需在TextFormField
的validator
屬性中調用您的驗證validator
。
return TextFormField(
obscureText: true,
// added this line
validator: Validation(). validatePassword,
decoration: InputDecoration(
labelText: 'Password',
hintText: 'contoh@password123'
),
);
該函數與驗證器屬性具有相同的簽名,因此您可以這樣做,而不是這樣:
return TextFormField(
obscureText: true,
// added this line
validator: (String value)=> Validation().validatePassword(value),
decoration: InputDecoration(
labelText: 'Password',
hintText: 'contoh@password123'
),
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.