未定义名称参数“on Pressed”
我正在尝试制作一个带有登录页面的应用程序,但我无法使按钮工作
import 'package:flutter/material.dart';
class SignIn extends StatefulWidget {
const SignIn({super.key});
@override
State<SignIn> createState() => _SignInState();
}
class _SignInState extends State<SignIn> {
// ignore: unused_field
final AuthService _auth = AuthService();
// text field state
String email = '';
String password = '';
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.brown[100],
appBar: AppBar(
backgroundColor: Colors.brown[400],
elevation: 0.0,
title: const Text('Sign in to LejweConnect'),
),
body: Container(
padding: const EdgeInsets.symmetric(vertical: 20.0, horizontal: 50.0),
child: Form(
child: Column(
children: <Widget>[
const SizedBox(height: 20.0),
TextFormField(
onChanged: (val){
setState(() => email = val);
}
),
const SizedBox(height: 20.0),
TextFormField(
obscureText: true,
onChanged: (val){
setState(() => password = val);
}
),
const SizedBox(height: 20.0),
Container(
color: Colors.pink[400],
// ignore: prefer_const_constructors
child: Text(
'Sign in',
style: const TextStyle(color: Colors.white),
),
onPressed: () async {
}
未定义命名参数“onPressed”。 尝试将名称更正为现有命名参数的名称,或使用名称“onPressed”定义命名参数。dartundefine_named_parameter
如何解决这个问题
您将 onPressed 传递给一个不接受 onPressed 作为参数的容器,这就是您收到 onPressed 错误的原因。
只有某些小部件接受
onPressed
参数,例如可用于执行按下行为的按钮。同样,如果您想让容器可点击,您可以用 InkWell 包裹它并将函数传递给 onTap
。例如:
InkWell(
onTap: () {}, // paste your onPressed fn here
child: Container(
child: Text("test"),
),
)