我需要在小部件构建方法期间设置TextEditingController
的值。
问题是,每次小部件重建时,_controller值都会重置为原始状态,新值会消失:final TextEditingController _controller = new TextEditingController();
Widget _build(BuildContext context) {
myString = "Value only available in widget build";
new TextField(
keyboardType: TextInputType.number,
inputFormatters: [FilteringTextInputFormatter.digitsOnly],
controller: _controller..text = myString,
),
}
在上面的示例中,myString
是在小部件构建期间声明的。不幸的是,它不能在initState
期间声明,因此我的问题。
我怎样才能只在第一次构建时设置_controller的值,并防止它在小部件重新构建后重置为原始值?
有什么建议吗?
2条答案
按热度按时间nxagd54h1#
从你所说的,你不需要使用StoreConnector的小部件,你不想更新时,更新您的商店。你完全可以这样做:
另外,如果你想用
StoreConnector<>
来做,你可以这样做:6qfn3psc2#
您可以将文本控制器的值设置到页面的initState()中,这样它就可以在重建后防止重置