我有两个文件,第一个是一些文本表单域,第二个是按钮。我想在其中一个文本表单域为空时禁用按钮。
文件一:
class FormTextState extends State<FormText>{
final TextEditingController inputController1 = TextEditingController();
final TextEditingController inputController2 = TextEditingController();
final TextEditingController inputController3 = TextEditingController();
bool submit1 = false;
bool submit2 = false;
bool submit3 = false;
@override
void initState(){
super.initState();
inputController1.addListener(() { setState(() {
submit1 = inputController1.text.isNotEmpty;
});
});
inputController2.addListener(() { setState(() {
submit2 = inputController2.text.isNotEmpty;
});
});
inputController3.addListener(() { setState(() {
submit3 = inputController3.text.isNotEmpty;
});
});
}
@override
void dispose(){
inputController1.dispose();
inputController2.dispose();
inputController3.dispose();
super.dispose();
[...]
}
对于每个TextFormField,控制器定义如下:
TextFormField(
controller: inputController1,
如果我直接在这个文件中创建这个按钮,一切都可以正常工作,如下所示:
ElevatedButton(
onPressed: submit1 && submit2 && submit3 ? () => doSomething() : null,
我怎样才能从其他有按钮的文件中得到这个结果呢?提交值是无法得到的。当然,我在开始的时候导入了这个文件。
2条答案
按热度按时间fruv7luv1#
您可以向类中添加一个函数,如下所示:
在创建类时
0dxa2lsx2#
你需要使用以下属性
这将工作为formtextfield在这情况你是使用块