hi我正在寻找一种将String变量强制转换为TextEditingController 的方法
final TextEditingController _testController=TextEditingController();
这就是我正在做的
var test = "_"+"testController"
在TextFormField
Controller
内部,我正在呼叫像这样的控制器
TextFormField(
controller: test,
),
我知道我本可以叫它TextEditingController
_testController
,但我必须这样做,有什么想法吗?我尝试了casting
、variable
到TextEditingController
,但我得到了这个错误,说
type 'String' is not a subtype of type 'TextEditingController' in type cast
正如您在评论中提到的,您有28个TextEditingControllers。
您可以通过创建地图来访问正确的地图。
var test = "_"+"testController"
final TextEditingController _testController=TextEditingController();
final TextEditingController _nameController=TextEditingController(); //Second controller
Map<String, TextEditingController> textMap = {'_testController': _testController, '_nameController': _nameController}; //Map declaration
然后将其用作:
TextFormField(
controller: textMap[test], //Access to the right controller by String Key
),