我建议使用provider package 来解决这个问题。
基本上,您创建一个扩展 ChangeNotifier 的类并保存两个 TextField 的值,然后为两个 Text 小部件提供它,在一个公共父小部件的某处:
ChangeNotifierProvider(
create: (context) => MyClass(),
child: MyApp(),
),
现在,每当您更改其中一个 TextField 时,只需从 MyClass 调用一个函数,该函数计算另一个 TextField 的新值应该是什么。
例如:
void calculate() {
// Some calculation and updating the values of the TextFields
notifyListeners();
}
注意notifyListeners() 调用,它告诉正在侦听此模型的小部件进行重建。
要收听此模型,请将您的 Text 小部件包装在消费者中,例如:
return Consumer<MyClass>(
builder: (context, myClass, child) {
return Text("Total price: ${myClass.netPrice}");
});
你可以从flutter状态管理tutorial了解更多