gpt4 book ai didi

flutter - 通过另一个 TextFormField 更改 TextFormField 的值

转载 作者:IT王子 更新时间:2023-10-29 07:16:45 26 4
gpt4 key购买 nike

当用户输入第一个 TextFormField 时,我试图更改第二个 TextFormField 的值。

TextEditingController txt1  = TextEditingController();
TextEditingController txt2 = TextEditingController();

new Container(
child: new TextFormField(
controller: txt1,
autovalidate: true,
keyboardType: TextInputType.number,
validator: (value){
if(value.isEmpty){
txt2.text = "0";
return 'Please enter value';
}else{
txt2.text = ((10/100)*value).toString();
}
},
)
),
new Container(
child: new TextFormField(
controller: txt2,
enabled: false
)
),

它工作正常。但是在运行控制台中我看到了以下错误信息

"setState() or markNeedsBuild() called during build"

最佳答案

建议的方法是使用 listener - 但代码中的另一种简短方法是使用 future。

你所拥有的工作代码:

child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
new Expanded(
child: new TextFormField(
controller: txt1,
autovalidate: true,
keyboardType: TextInputType.number,
validator: (value) {
if (value.isEmpty) {
Future.value(Duration(seconds: 1)).whenComplete(() { // Add this
txt2.text = "0";
});
return 'Please enter value';
} else {
Future.value(Duration(seconds: 1)).whenComplete(() { //Add this
txt2.text = ((10 / 100) * int.parse(value)).toString();
});
return null;
}
},
)),
Expanded(child: TextFormField(controller: txt2, enabled: false)),
],
),

关于flutter - 通过另一个 TextFormField 更改 TextFormField 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57139630/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com