颤振 表达式的计算结果不为函数,因此无法调用



我正试图对我的应用程序进行登录屏幕,我想使用flutter spinkit制作一个加载屏幕,但我的加载函数中总是有一个错误

错误是在回程装载?loading((表达式的计算结果不是函数,因此不能调用

如果有人能帮我,那就太好了,提前感谢

// ignore_for_file: use_key_in_widget_constructors, prefer_const_literals_to_create_immutables, prefer_const_constructors, unused_import, non_constant_identifier_names
import 'dart:ffi';
import 'package:http/http.dart' as http;
import 'package:flutter/material.dart';
import 'package:myapp2/loading.dart';
import 'package:myapp2/second.dart';
import 'dart:convert';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: Login(),
);
}
}
class Login extends StatefulWidget {
@override
LoginPage createState() => LoginPage();
}
class LoginPage extends State<Login> {
var emailControler = TextEditingController();
var passControler = TextEditingController();
bool Loading = false;
@override
Widget build(BuildContext context) {
return Loading
? Loading()
: Scaffold(
body: Padding(
padding: const EdgeInsets.all(10.0),
child: SafeArea(
child: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
TextFormField(
controller: emailControler,
obscureText: false,
decoration: InputDecoration(
labelText: "Email",
border: OutlineInputBorder(),
suffixIcon: Icon(Icons.email)),
),
SizedBox(
height: 15,
),
TextFormField(
controller: passControler,
obscureText: true,
decoration: InputDecoration(
labelText: "Password",
border: OutlineInputBorder(),
suffixIcon: Icon(Icons.lock)),
),
SizedBox(
height: 45,
),
OutlinedButton.icon(
onPressed: () {
Login();
},
icon: Icon(
Icons.login,
size: 18,
),
label: Text("login")),
],
)),
),
),
);
}
// base64 encoding a string
encode() {
String credentials = emailControler.text + ":" + passControler.text;
Codec<String, String> stringToBase64 = utf8.fuse(base64);
String encoded = stringToBase64.encode(credentials);
return (encoded);
}
//Login POST API CALL
Future<void> Login() async {
if (passControler.text.isNotEmpty && emailControler.text.isNotEmpty) {
setState(() => Loading = true);
var response = await http.post(
Uri.parse(""),
headers: ({
'MAXAUTH': encode(),
}));
if (response.statusCode == 200) {
setState(() => Loading = true);
Navigator.push(
context, MaterialPageRoute(builder: (context) => Second()));
} else {
setState(() => Loading = false);
ScaffoldMessenger.of(context)
.showSnackBar(SnackBar(content: Text("Invalid cords!")));
}
} else {
setState(() => Loading = false);
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text("Empty fields are not allowed !")));
}
}
}

加载在代码中被定义为布尔值。它不能用作小部件!命名约定是在定义变量时使用camelCase/小写,以避免混淆。

更改

bool Loading = false;

bool loading = false;

然后更新您的代码:

return loading
? Center(
child: SpinKitRotatingCircle(
color: Colors.blue,
size: 50.0,
),
);
: Scaffold(
body: Padding(

最新更新