Flutter代码报错Expected to find ']',请求排查main.dart问题
Flutter代码报错“Expected to find ']'”排查解决
问题原因
报错的核心是语法结构错误:你把onChanged: _controller.setLogin作为独立元素放在了Column的children列表中,但这个语句是TextField的专属属性,不属于独立Widget,直接放在列表里会破坏结构,导致编译器无法正确解析列表,从而提示缺少]。
修复后的代码
@override Widget build(BuildContext context) { return Scaffold( body: Container( padding: const EdgeInsets.all(28), color: Colors.blue.shade800, child: Column( crossAxisAlignment: CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center, children: [ const Icon(Icons.people, size: 78), // 将onChanged属性移至第一个TextField内部 TextField( decoration: const InputDecoration(label: Text("Login:")), onChanged: _controller.setLogin, ), const TextField( decoration: InputDecoration(label: Text("Senha:")), obscureText: true, onChanged: _controller.setPass, ), const SizedBox( height: 25, ), ElevatedButton( onPressed: () { _controller.auth(); }, child: const Text("Login"), ), ], ), ), ); }
额外注意事项
- 第一个
TextField原本的const修饰符必须移除,因为添加的onChanged属性引用了外部的_controller,无法被编译为常量 - 确保
_controller的setLogin和setPass方法符合ValueChanged<String>类型的回调要求
内容的提问来源于stack exchange,提问作者Guilherme Meireles
相关产品推荐
相关产品推荐

